骨のダイスを転がそう

2009|01|02|03|04|05|06|07|10|12|
2010|01|02|03|04|05|06|07|08|09|10|11|
2011|02|03|05|06|07|08|09|10|11|12|
2012|01|02|04|05|09|10|11|12|
2013|01|02|04|
2014|11|
2015|01|04|05|
2016|06|07|08|09|11|
2017|01|02|03|04|
2018|03|

2013-01-09

_ [SQL] 2次元表を作るために

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