Seleziona il numero di riga in postgres


102

Come selezionare il numero di riga in postgres.

Ho provato questo:

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

e ho ricevuto questo errore:

ERRORE: errore di sintassi pari o vicino a "over"
LINEA 1: seleziona row_number () su (ORDER BY cgcode_odc_mapping_id) come

Ho controllato queste pagine: come mostrare i numeri di riga nella query PostgreSQL?


Questa è la mia domanda:

 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 

questo è l'errore:

ERRORE: errore di sintassi in corrispondenza o vicino a "over" LINE 1: selezionare row_number () over (ORDER BY cgcode_odc_mapping_id) come


3
Not Workingnon ci dice nulla per cui possiamo aiutare. Si prega di fornire messaggi di errore e / o qualsiasi altra informazione pertinente. Inoltre, specifica la versione di PostgreSQL che stai utilizzando.
MatBailie


1
A prima vista, non funziona perché stai cercando di utilizzare le funzioni della finestra su una vecchia versione di PostgreSQL che non le supporta.
Craig Ringer

2
Non esiste la versione 1.8.4 di PostgreSQL.
kgrittn

1
Si prega di pubblicare l'output di select version()- non c'è (e non è mai stata) una versione 1.8
a_horse_with_no_name

Risposte:


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

Ecco la sezione pertinente nei documenti.

PS Questo, infatti, corrisponde pienamente alla risposta nella domanda a cui si fa riferimento.


18
Si dovrebbe anche specificare un ordine in OVERclausola di: OVER (ORDER BY id). In caso contrario l'ordine non è garantito.
AlexM

3
@pumbo Appears row_number () restituisce "il numero di riga del gruppo di risultati" (cioè sempre 1 2 3 4 ... se specifichi over ()) tuttavia se hai una query esterna riorganizza l'ordinamento dei risultati ovviamente ref: stackoverflow.com/a / 3397149/32453 commenti
rogerdpack
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.