Uma forma legal seria SELECT DISTINCT ON (tipo) r1.* FROM registros r1 ORDER BY tipo, data desc Em 17/06/2015 23:07, "Luciano Bierhals" <[email protected]> escreveu:
> Pessoal, > > Assumindo meus limitados conhecimentos, tenho uma dúvida e gostaria de um > auxílio do grupo. > > Vamos a dúvida: > > CREATE TABLE "registros" > ( > "ID" INTEGER NOT NULL, > "tipo" INTEGER NOT NULL, > "data" DATE NOT NULL, > "capacidade" SMALLINT NOT NULL > -- outras diversas colunas que não fazem diferença para o entendimento do > problema > ); > > O campo ID é a PK. > > Para fazer um select que retorne todos os dados do registro, mas apenas o > de maior data, atualmente faço isso: > > Select r1.* > from registros r1 > join (select max(data) as data, tipo > from registro > group by tipo) r2 on r1.tipo = r2.tipo and r1.data = r2.data > > > Pergunto: Existe alguma forma melhor (mais otimizada ou de melhor escrita) > para fazer essa consulta? Ou esta é a única forma? > > Desde já agradeço > > Atenciosamente, > Luciano > > > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
