"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment récupérer efficacement la dernière ligne pour chaque identifiant unique dans PostgreSQL?

Comment récupérer efficacement la dernière ligne pour chaque identifiant unique dans PostgreSQL?

Publié le 2025-06-14
Parcourir:151

How to Efficiently Retrieve the Last Row for Each Unique Identifier in PostgreSQL?

PostgreSQL: Extraction de la dernière ligne pour chaque identifiant unique

Dans PostgreSql, vous pouvez rencontrer des situations de données où vous avez besoin d'extraire les informations de la dernière ligne associée à chaque identifiant distinct dans un ensemble de données. Considérez les données suivantes:

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;
2 2014-02-01 SADA

3 2014-06-12 fdSa

pre> Une solution de database croisée qui peut sacrifier de légères performances, vous pouvez utiliser une fonction de fenêtre:


select id, date, autre_info depuis ( Sélectionnez ID, date, autre_info, row_number () over (partition by id ordonnance by date dec) comme rn du_table ) t où rn = 1 Ordre par id;

Dans la plupart des cas, la solution impliquant une fonction de fenêtre est plus rapide que d'utiliser une sous-question.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3