Pilih nomor baris di postgres


102

Bagaimana memilih nomor baris di postgres.

Saya mencoba ini:

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

dan mendapatkan kesalahan ini:

EROR: kesalahan sintaks pada atau di dekat "over"
LINE 1: pilih row_number () di atas (ORDER BY cgcode_odc_mapping_id) sebagai

Saya telah memeriksa halaman-halaman ini: Bagaimana cara menampilkan nomor baris dalam kueri PostgreSQL?


Ini pertanyaan saya:

 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 

ini adalah kesalahannya:

EROR: kesalahan sintaks pada atau dekat "over" LINE 1: pilih row_number () over (ORDER BY cgcode_odc_mapping_id) sebagai


3
Not Workingtidak memberi tahu kami apa pun yang dapat kami bantu. Tolong bisakah Anda memberikan pesan kesalahan dan / atau informasi relevan lainnya. Selain itu, harap tentukan versi PostgreSQL yang Anda gunakan.
MatBailie


1
Diperkirakan, ini tidak berfungsi karena Anda mencoba menggunakan fungsi jendela pada versi lama PostgreSQL yang tidak mendukungnya.
Craig Ringer

2
Tidak ada PostgreSQL versi 1.8.4.
kgrittn

1
Silakan posting output select version()- tidak ada (dan tidak pernah ada) versi 1.8
a_horse_with_no_name

Jawaban:


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

Inilah bagian yang relevan di dokumen.

PS Ini, pada kenyataannya, sepenuhnya cocok dengan jawaban dalam pertanyaan referensi.


18
Anda juga harus menentukan urutan OVERklausa: OVER (ORDER BY id). Jika tidak, pesanan tidak dijamin.
AlexM

3
@pumbo Muncul row_number () mengembalikan "nomor baris dari kumpulan hasil" (yaitu selalu 1 2 3 4 ... jika Anda menentukan over ()) namun jika Anda memiliki kueri luar mengatur ulang urutan hasil tentu saja ref: stackoverflow.com/a / 3397149/32453 komentar
rogerdpack
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.