postGresql: Extraindo a última linha para cada identificador exclusivo
em postgresql, você pode encontrar situações em que você precisa extrair as informações da linha associada a cada identificador distinto. Considere os seguintes dados:
select distinct on (id) id, date, another_info from the_table order by id, date desc;
Esta consulta retornará a seguinte saída:
select id, date, another_info from ( select id, date, another_info, row_number() over (partition by id order by date desc) as rn from the_table ) t where rn = 1 order by id;
id date outros_info1 2014-05-13 kgfd
2 2014-02-01 Solução de dados cruzados que podem sacrificar um pequeno desempenho, você pode usar uma função de janela:
selecione ID, data, outro_info de ( Selecione ID, data, outro_info, row_number () sobre (partição por ordem de identificação por data desc) como RN do_table ) t onde rn = 1 Ordem por id;
Na maioria dos casos, a solução envolvendo uma função de janela é mais rápida do que usar um sub-quadro.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3