"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 extraire la dernière ligne de données pour chaque ID dans PostgreSQL?

Comment extraire la dernière ligne de données pour chaque ID dans PostgreSQL?

Publié le 2025-04-12
Parcourir:850

How to Extract the Last Row for Each ID in PostgreSQL?

Extraction de la dernière ligne pour chaque ID dans PostgreSQL

Considérons un ensemble de données avec des colonnes nommées ID, Date, et Another_info. L'objectif est d'extraire les dernières informations (ligne) pour chaque ID unique.

pour y parvenir dans PostgreSQL, deux méthodes sont couramment utilisées:

distinctes sur l'opérateur

postgresql fournit l'opérateur distinct, qui vous permet de spécifier que les valeurs distinctes de l'opérateur. Dans ce cas, l'opérateur peut être utilisé comme suit:

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;

Cette requête garantit que seule la dernière instance de chaque ID unique est renvoyée, commandée dans l'ordre descendant par date. Une fonction de fenêtre vous permet d'effectuer des calculs ou des agrégations sur un ensemble de lignes partitionnées. Dans ce cas, la requête suivante peut être utilisée:

sélectionner id, date, un 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; Cette requête utilise la fonction row_number () pour attribuer un numéro séquentiel à chaque ligne de chaque partition d'ID. La clause WHERE filtre les résultats pour inclure uniquement les lignes avec la valeur RN la plus élevée (c'est-à-dire la dernière ligne pour chaque ID).

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