骨のダイスを転がそう
2013-01-09
_ [SQL] 2次元表を作るために
- Window 関数といえば ROW_NUMBER しか知らなかった。
- だから 2次元の表を作るために、まずレコードを取り出して、そこから GROUP BY でY軸の項目を取り出して、それに ROW_NUMBER をつけて、元のデータと結合して……なんていう方法を取っていた。ROW_NUMBER は全ての行に連番が付いてしまうから。
- これは、DENSE_RANK 関数を使えば一発で解決する問題だった。なんと。
- RANK だから同一項目の場合は、同じ番号が付く。RANK の場合は同率が並ぶとその後の順位は数字が飛ぶけど、DENSE_RANK の場合は数字が連続する。
- これが欲しかったんだよ。これで結合が要らなくなるよ。