Maison > base de données > tutoriel mysql > Comment trouver l'ID avec la date maximale pour chaque catégorie dans PostgreSQL ?

Comment trouver l'ID avec la date maximale pour chaque catégorie dans PostgreSQL ?

Linda Hamilton
Libérer: 2024-12-31 03:03:14
original
193 Les gens l'ont consulté

How to Find the ID with the Maximum Date for Each Category in PostgreSQL?

Sélection d'un identifiant avec une date maximale regroupée par catégorie dans PostgreSQL

Pour déterminer l'identifiant avec la date maximale pour chaque catégorie dans une table, PostgreSQL propose une approche appropriée. Considérons les exemples de données :

id category date
1 a 2013-01-01
2 b 2013-01-03
3 c 2013-01-02
4 a 2013-01-02
5 b 2013-01-02
6 c 2013-01-03
7 a 2013-01-03
8 b 2013-01-01
9 c 2013-01-01

Pour obtenir le résultat souhaité, nous pouvons utiliser la clause DISTINCT ON de PostgreSQL. Cette clause nous permet de sélectionner des lignes uniques en fonction d'une expression spécifiée, en regroupant les résultats par une autre colonne. Dans ce cas, nous regrouperons les lignes par catégorie et sélectionnerons l'identifiant distinct avec la date maximale au sein de chaque groupe.

Voici la requête pour accomplir cela :

SELECT DISTINCT ON (category)
       id  -- , category, date  -- any other column (expression) from the same row
FROM   tbl
ORDER  BY category, date DESC;
Copier après la connexion

La clause DISTINCT ON garantit que seule la première occurrence de chaque valeur de catégorie distincte est sélectionnée. La clause ORDER BY trie les résultats d'abord par catégorie en ordre croissant (ordre alphabétique) puis par date en ordre décroissant. Cet ordre garantit que la ligne avec la dernière date pour chaque catégorie apparaît en premier.

L'exécution de cette requête donnera le résultat suivant :

id
7
2
6

Ces identifiants (7, 2, 6) représentent les dates maximales pour les catégories a, b et c, respectivement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal