Maison > base de données > tutoriel mysql > Comment puis-je ajouter des numéros de ligne aux résultats de ma requête PostgreSQL à l'aide des fonctions de fenêtre ?

Comment puis-je ajouter des numéros de ligne aux résultats de ma requête PostgreSQL à l'aide des fonctions de fenêtre ?

Barbara Streisand
Libérer: 2024-12-26 15:37:15
original
818 Les gens l'ont consulté

How Can I Add Row Numbers to My PostgreSQL Query Results Using Window Functions?

Affichage des numéros de ligne dans les requêtes PostgreSQL avec des fonctions de fenêtre

Pour faciliter le référencement et l'analyse, afficher les numéros de ligne pour chaque enregistrement dans une requête PostgreSQL peut être très bénéfique. Dans PostgreSQL 8.4 et versions ultérieures, la puissante fonction de fenêtre ROW_NUMBER() active cette fonctionnalité.

Utilisation de la fonction ROW_NUMBER()

Pour afficher le numéro d'observation séquentiel pour chaque enregistrement , vous pouvez utiliser la fonction ROW_NUMBER() dans votre requête. Sa syntaxe comprend une clause ORDER BY pour déterminer la séquence des lignes. Voici comment l'implémenter :

SELECT ROW_NUMBER() OVER (ORDER BY field NULLS LAST) AS rownum, *
FROM foo_tbl
ORDER BY field;
Copier après la connexion

Dans cette requête :

  • ROW_NUMBER() OVER (ORDER BY field NULLS LAST) calcule le numéro de ligne pour chaque enregistrement, en ordonnant le lignes dans l'ordre croissant.
  • foo_tbl représente le tableau contenant les données que vous souhaitez enumerate.
  • le champ spécifie la colonne selon laquelle vous souhaitez trier les lignes. Les valeurs nulles sont gérées par l'option NULLS LAST, en les plaçant à la fin de la séquence.

Approche simplifiée sans commande

Si l'ordre des lignes n'est pas essentiel , vous pouvez simplifier la requête en excluant la clause ORDER BY :

SELECT ROW_NUMBER() OVER(), *
FROM foo_tbl;
Copier après la connexion

Cette approche attribue des numéros de ligne à chaque enregistrement sans prendre en compte tout ordre ou tri spécifique.

Exemple

Considérez la démonstration SQL Fiddle suivante : https://www.sqlfiddle.com/#!17/665c8e/1

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