Récupération de l'ID de date maximum regroupé par catégorie dans PostgreSQL
Dans les opérations de base de données, il est souvent nécessaire de récupérer des enregistrements en fonction de critères spécifiques. L'une de ces tâches consiste à sélectionner des identifiants avec la date maximale pour chaque catégorie dans un ensemble de données donné. Ceci peut être réalisé efficacement dans PostgreSQL à l'aide de la clause DISTINCT ON.
Considérez les exemples de données suivants :
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 sélectionner les ID avec la date maximale pour chacun catégorie, vous pouvez utiliser ce qui suit requête :
SELECT DISTINCT ON (category) id -- , category, date -- any other column (expression) from the same row FROM tbl ORDER BY category, date DESC;
Explication :
Le résultat de cette requête sera :
7 2 6
Notez que DISTINCT ON est particulièrement utile lorsque plusieurs enregistrements existent avec la même date maximale. Dans de tels cas, il permet de sélectionner le premier enregistrement unique pour chaque catégorie.
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!