Esta é a minha consulta:
select locid,tlid,locdescription from (
select locid, tlid, locdescription
from
trip_log left join trip_log_det on tlid=tldtripid
left join locations on tldlocation=locid
where tlid=50 order by tldid
) as foo group by locid,tlid,locdescription
O objetivo de usar uma subconsulta é recuperar os dados ordenados de acordo com a consulta interna, classificados por tldid
. Não preciso tldid
dos dados, pois é uma coluna serial e isso anularia a group by
instrução.
Existe uma maneira de dizer à subconsulta para manter a ordem da consulta interna?
Você não precisa de uma subconsulta. Mas você tem que decidir qual ordem deseja.
Depois
group by
disso, não hátldid
mais valores. E cada grupo será feito colapsando muitas linhas (com valores diferentestldid
) em uma linha. Qual deles deve ser usado para o pedido? É o máximo, o mínimo ou algum outro?Você pode escrever por exemplo:
No Postgres, você também pode usar a
DISTINCT ON
sintaxe não padrão para obter o mesmo resultado. Isso é mais flexível, pois você também pode ter astldid
colunas e outras (não agrupadas) naselect
lista: