MW211 EXIT

devlog
PostgreSQL/結果に連番をふる
2012年10月01日
SQL出力結果に連番をふるには以下の通り。
┌──────────────────────────────────────┐
│SELECT ROW_NUMBER() OVER() FROM 表;                                         │
└──────────────────────────────────────┘

連番の順番を指定するには以下のようにOVER()内にORDER BY句をつければよい。
┌──────────────────────────────────────┐
│SELECT ROW_NUMBER() OVER(ORDER BY 列 ASC) FROM 表;                          │
└──────────────────────────────────────┘
いくつかのSQL文を複合する場合、途中の並び替えは無視されるから、
これをつかって並び順を記憶させたりできるのかも。

ちなみにグループ化してその中での枝番的な連番をふる方法は以下の通り。
┌──────────────────────────────────────┐
│SELECT ROW_NUMBER() OVER(PARTITION BY 列) FROM 表                           │
└──────────────────────────────────────┘
PARTITION BYの後にグループ化のキーとなる列を指定すればよい。
分類:PostgreSQL