Re:
От | David Johnston |
---|---|
Тема | Re: |
Дата | |
Msg-id | 7BBDED60-9F47-469E-B7DF-A391EAB4DF4B@yahoo.com обсуждение исходный текст |
Ответ на | (JORGE MALDONADO <jorgemal1960@gmail.com>) |
Список | pgsql-sql |
I have the following query:SELECT
sem_clave,
to_char(secc_esp_media.sem_fechareg,'TMMon-DD-YYYY') as sem_fechareg,
sem_seccion,
sem_titulo,
sem_enca,
tmd_nombre,
tmd_archivo,
tmd_origen,
gen_nombre,
smd_nombre,
prm_urlyoutube,
prm_prmyoutube,
prm_urlsoundcloud,
prm_prmsoundcloud
FROM secc_esp_media
INNER JOIN cat_tit_media ON tmd_clave = sem_titulo
INNER JOIN cat_secc_media ON smd_clave = sem_seccion
INNER JOIN cat_generos ON gen_clave = tmd_genero
INNER JOIN parametros ON 1 = 1
WHERE
smd_nombre = 'SOMETHING' AND
sem_fipub <= 'SOME DATE' ORDER BY sem_fipub DESC, sem_ffpub DESC
I thought it was working fine until I noticed I needed to include a DISTINCT clause as follows:SELECT DISTINCT ON (sem_clave) ......(the rest of the query is exactly the same as above)But, when I run it, I get a message telling me that I need an ORDER BY the field "sem_clave" which is the field in the DISTINCT clause. How can I solve this issue without affecting the ORDER BY it already has ?Regards,Jorge Maldonado
Since you are forced to include the ON field(s) first in the ORDER BY if you want a different final sort order you will have to use either a sub-select or a CTE/WITH to execute the above query then in the outer/main query you can perform a second sort.
David J.
В списке pgsql-sql по дате отправления: