Sélectionnez le numéro de ligne dans postgres


102

Comment sélectionner le numéro de ligne dans postgres.

J'ai essayé ceci:

select
    row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,
    cgcode_odc_mapping_id
  from access_odc.access_odc_mapping_tb
  order by cgcode_odc_mapping_id

et j'ai cette erreur:

ERREUR: erreur de syntaxe à ou près de "over"
LINE 1: sélectionnez row_number () over (ORDER BY cgcode_odc_mapping_id) comme

J'ai vérifié ces pages: Comment afficher les numéros de ligne dans une requête PostgreSQL?


Voici ma requête:

 select row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,cgcode_odc_mapping_id from access_odc.access_odc_mapping_tb order by cgcode_odc_mapping_id 

c'est l'erreur:

ERREUR: erreur de syntaxe à ou près de "over" LINE 1: sélectionnez row_number () over (ORDER BY cgcode_odc_mapping_id) comme


3
Not Workingne nous dit rien sur quoi nous pouvons aider. S'il vous plaît pourriez-vous donner des messages d'erreur et / ou toute autre information pertinente. Veuillez également spécifier la version de PostgreSQL que vous utilisez.
MatBailie


1
À première vue, cela ne fonctionne pas car vous essayez d'utiliser les fonctions de fenêtre sur une ancienne version de PostgreSQL qui ne les prend pas en charge.
Craig Ringer

2
Il n'y a pas de version 1.8.4 de PostgreSQL.
kgrittn

1
Veuillez publier la sortie de select version()- il n'y a pas (et n'a jamais été) de version 1.8
a_horse_with_no_name le

Réponses:


178
SELECT tab.*,
    row_number() OVER () as rnum
  FROM tab;

Voici la section pertinente de la documentation.

PS Ceci, en fait, correspond parfaitement à la réponse dans la question référencée.


18
Vous devez également spécifier un ordre dans l' OVERarticle: OVER (ORDER BY id). Sinon, la commande n'est pas garantie.
AlexM le

3
@pumbo Apparaît row_number () renvoie "le numéro de ligne du jeu de résultats" (c'est-à-dire toujours 1 2 3 4 ... si vous le spécifiez over ()) cependant si vous avez une requête externe, réorganisez bien sûr l'ordre des résultats ref: stackoverflow.com/a / 3397149/32453 commentaires
rogerdpack
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.