Maison > base de données > tutoriel mysql > Comment sélectionner la première ligne d'un groupe PostgreSQL par requête ?

Comment sélectionner la première ligne d'un groupe PostgreSQL par requête ?

Barbara Streisand
Libérer: 2025-01-25 20:09:15
original
548 Les gens l'ont consulté

How to Select the First Row in a PostgreSQL Group By Query?

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>
Copier après la connexion
Dans l'exemple fourni, nous espérons récupérer la première ligne de chaque client dans le tableau des achats en fonction de la valeur totale la plus élevée. Nous pouvons utiliser un INTERNINT ON pour implémenter les éléments suivants:

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>
Copier après la connexion

FIRST(id) customer FIRST(total)
1 Joe 5
2 Sally 3
Spécifiez que nous espérons suivre les résultats de la colonne du client et sélectionner différentes valeurs.

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).

    Description supplémentaire
  • DISTINCT ON (customer)
  • La clause
  • doit être incluse dans les clauses ORDER BY customer, total DESC, id, mais la norme ne nécessite pas de colonnes d'ID supplémentaires.
Si la colonne totale peut contenir une valeur d'air,

doit être ajouté à la clause :

  • Conclusion DISTINCT ON ORDER BY
  • La fonction distincte sur PostgreSQL fournit une méthode efficace et flexible pour sélectionner la première ligne (ou la dernière ligne) dans la requête de groupe. En utilisant cette fonction, les développeurs peuvent facilement analyser les données du groupe et récupérer les informations nécessaires.

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