postgresの行番号を選択


102

postgresで行番号を選択する方法。

私はこれを試しました:

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

このエラーが発生しました:

エラー:「オーバー」またはその近くの構文エラー
1行目:(ORDER BY cgcode_odc_mapping_id)asよりrow_number()を選択

これらのページを確認しました:PostgreSQLクエリで行番号を表示するにはどうすればよいですか?


これは私のクエリです:

 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 

これはエラーです:

エラー:「オーバー」またはその近くの構文エラー1行目:(ORDER BY cgcode_odc_mapping_id)asでrow_number()を選択


3
Not Working私たちが手助けできることは何も教えてくれません。エラーメッセージやその他の関連情報をお知らせください。また、使用しているPostgreSQLのバージョンを明記してください。
MatBailie 2012


1
一見すると、ウィンドウ関数をサポートしていない古いバージョンのPostgreSQLでウィンドウ関数を使用しようとしているため、機能していません。
クレイグリンガー

2
PostgreSQLバージョン1.8.4はありません。
kgrittn 2012

1
の出力を投稿してくださいselect version()-バージョン1.8はありませんでした(されていませんでした)
a_horse_with_no_name

回答:


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

これはドキュメントの関連セクションです。

PSこれは、実際には、参照されている質問の回答と完全に一致します。


18
OVER句の順序も指定する必要があります:OVER (ORDER BY id)。それ以外の場合、順序は保証されません。
AlexM

3
@pumboが表示されるrow_number()は「結果セットの行番号」を返します(つまり、指定した場合は常に1 2 3 4 ... over ())。ただし、外部クエリがある場合は、もちろんref:stackoverflow.com/aのように結果の順序を並べ替えます。/ 3397149/32453コメント
rogerdpack 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.