PostgreSQL で ROWNUM みたいなことをしたい

ORACLE には ROWNUM という擬似列があって 結果セットに番号を振って取得することができます。 (ORDER BY に影響を受けるので順番に番号が付かないこともありますが)

PostgreSQL ではウィンドウ関数(window function)を使うと 同じようなことができます。

次のような感じです。

db=# SELECT (ROW_NUMBER() OVER()) AS rownum, f1 FROM table1;

 rownum | f1
--------+----
      1 | A
      2 | B
      3 | C
      4 | D
      5 | E
(5 rows)

ちなみにウィンドウ関数は 標準SQL に規定されているもので PostgreSQL のみにある考え方ではありません。

Google サイト内検索

Amazonアソシエイト