次のようなデータを含むテーブルがあります。
ID | RowNumber | Data
------------------------------
1 | 1 | Data
2 | 2 | Data
3 | 3 | Data
4 | 1 | Data
5 | 2 | Data
6 | 1 | Data
7 | 2 | Data
8 | 3 | Data
9 | 4 | Data
RowNumbersの各セットをグループ化して、結果が次のようになるようにします。
ID | RowNumber | Group | Data
--------------------------------------
1 | 1 | a | Data
2 | 2 | a | Data
3 | 3 | a | Data
4 | 1 | b | Data
5 | 2 | b | Data
6 | 1 | c | Data
7 | 2 | c | Data
8 | 3 | c | Data
9 | 4 | c | Data
各グループの開始位置と停止位置を知る唯一の方法は、RowNumberを最初からやり直すときです。どうすればこれを達成できますか?また、これを行うために必要なテーブルには5,200万行あるため、かなり効率的である必要があります。
追加情報
IDは真にシーケンシャルですが、RowNumberはそうではない場合があります。RowNumberは常に1で始まると思いますが、たとえば、group1のRowNumberは「1,1,2,2,3,4」であり、group2の場合は「1,2,4,6」などです。