PostgreSQLでSELECTした結果に連番を付けるやり方を調査したらウィンドウ関数を使えば出来そうだったのでメモ。 PostgreSQL 8.4から使えるようになった ウィンドウ関数 。これを使うと今までOracleのようにROWNUMを使えなかったのが、ROW_NUMBER()で実現できる。 8.3以前で実現する場合は shiro氏のブログ を参考に。 単純にselectした順番を出力する場合 select row_number() over(), * From tbm_user 例えば年齢ごとに連番を付けることも可能 select row_number() over(partition by age), * From tbm_user order by句で並び替えたらover()で明示しないとselectした順番にはならない select row_number() over(order by name), * From tbm_user order by name 応用すれば今までサブクエリーで書いていたのが簡単に実現できそう。 下記サイトも参考に PostgreSQL 文書 3.5. ウィンドウ関数 分析関数の衝撃:CodeZine(コードジン)
コメント
コメントを投稿