2012-08-14 29 views
62

Satır numaraları sırayla nasıl seçilir. Satırlar arası satır sayısını seç

bu çalıştı:

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 

ve bu hata var: Ben bu sayfaları kontrol ettikten

 
ERROR: syntax error at or near "over" 
LINE 1: select row_number() over (ORDER BY cgcode_odc_mapping_id)as 

:

: Bu benim sorgu How to show row numbers in PostgreSQL query?


olduğunu seçin satırnum() (cgcode_odc_mapping_id ORDER BY) üzerinden

+3

'Çalışmıyor 'bize yardımcı olabileceğimiz bir şey söylemiyor. Lütfen hata mesajları ve/veya diğer ilgili bilgileri verebilir misiniz? Ayrıca, lütfen kullandığınız PostgreSQL sürümünü belirtin. – MatBailie

+0

Bir diziye mi ihtiyacınız var? – FabianoLothor

+0

olası bir kopyası [PostgreSQL sorgusunda satır numaralarının nasıl gösterileceği?] (Http://stackoverflow.com/questions/3397121/how-to-show-row-numbers-in-postgresql-query) – vyegorov

cevap

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

Here's

olarak ilgili bölümde: ya yakın "üzerinde" HAT 1'deki sözdizimi hatası:

HATA:

bu 0 hatadır docs.

P.S. Bu, aslında, başvurulan sorudaki cevabı tam olarak eşleştirir.

+11

"OVER" ifadesinde bir sipariş belirtmelisiniz: "OVER (ORDER BY id)". Aksi halde sipariş garanti edilmez. – AlexM

+2

@pumbo Görünüşler row_number(), "resultset satır numarası" değerini döndürür (yani, "over()' seçeneğini belirtirseniz her zaman 1 2 3 4 ...) ancak bir dış sorgunuz varsa : http://stackoverflow.com/a/3397149/32453 yorum – rogerdpack

İlgili konular