2012-08-14 33 views
62

Cách chọn số hàng trong postgres.Chọn Số hàng trong postgres

Tôi cố gắng này:

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 

và đã nhận lỗi này:

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

Tôi đã kiểm tra các trang này: How to show row numbers in PostgreSQL query?


Đây là câu hỏi của tôi:

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 

đây là lỗi:

LỖI: lỗi cú pháp tại hoặc gần "qua" LINE 1: chọn row_number() trên (ORDER BY cgcode_odc_mapping_id) như

+3

'Không hoạt động' không cho chúng tôi biết bất kỳ điều gì mà chúng tôi có thể trợ giúp. Bạn có thể cung cấp thông báo lỗi và/hoặc bất kỳ thông tin liên quan nào khác không. Ngoài ra, vui lòng chỉ định phiên bản PostgreSQL mà bạn đang sử dụng. – MatBailie

+0

Bạn cần một chuỗi? – FabianoLothor

+0

có thể trùng lặp của [Làm thế nào để hiển thị số hàng trong truy vấn PostgreSQL?] (Http://stackoverflow.com/questions/3397121/how-to-show-row-numbers-in-postgresql-query) – vyegorov

Trả lời

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

Here's phần có liên quan trong tài liệu.

P.S. Điều này, trên thực tế, hoàn toàn khớp với câu trả lời trong câu hỏi được tham chiếu.

+11

Bạn cũng nên chỉ định một mệnh đề trong mệnh đề 'OVER':' OVER (ORDER BY id) '. Nếu không, thứ tự không được bảo đảm. – AlexM

+2

@pumbo Xuất hiện row_number() trả về "số hàng của resultset" (tức là luôn luôn 1 2 3 4 ... nếu bạn chỉ định 'over()') tuy nhiên nếu bạn có một truy vấn bên ngoài sắp xếp lại kết quả sắp xếp của khóa học ref : http://stackoverflow.com/a/3397149/32453 nhận xét – rogerdpack

Các vấn đề liên quan