Sélectionnez la première ligne de la requête du groupe PostgreSQL
Lors du traitement des données des paquets, nous devons généralement récupérer des lignes spécifiques, telles que la première ou la dernière ligne de chaque groupe. Ce tutoriel vise à répondre à la façon de choisir la première ligne de la requête de groupe dans PostgreSQL.
Solution: distincte sur
PostgreSQL fournit une fonctionnalité pratique, appelée distribution, qui permet le premier (ou le dernier) du mouvement répété du groupe. La grammaire est la suivante:
Appliquer à un problème donné
<code class="language-sql">SELECT DISTINCT ON (DISTINCT_COLUMNS) COLUMNS FROM TABLE ORDER BY GROUPING_COLUMN, SORT_ORDER;</code>
Cette requête entraînera la sortie:
Explication
<code class="language-sql">SELECT DISTINCT ON (customer) id, customer, total FROM purchases ORDER BY customer, total DESC, id;</code>
FIRST(id) | customer | FIRST(total) |
---|---|---|
1 | Joe | 5 |
2 | Sally | 3 |
Suivez d'abord le résultat de tri du client (pour le regroupement), puis triez par commande totale (trouvez la première ligne avec la valeur totale la plus élevée), et enfin trier par ID pour résoudre le conflit (s'il y en a).
DISTINCT ON (customer)
ORDER BY customer, total DESC, id
, mais la norme ne nécessite pas de colonnes d'ID supplémentaires. doit être ajouté à la clause :
DISTINCT ON
ORDER BY
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!