2016-07-22 3 views
0

私は順番に行のグループを持っています。列「ステータス」には2つの値0/1しかありません。ここでは、0/1セットごとにシーケンス番号/グループ番号を追加したいと思います。 0から1行ないし多くの行がありますが、最後には各セットごとに1つしかありません。どのように私は1状況欄に基づいて行のグループにシーケンス番号を追加する方法

例があった場合にのみ、増加のシーケンス番号などの新しい列を追加します:

ID Status Row Group Number 
1 0 1 
2 0 1 
3 1 1 
4 0 2 
5 1 2 
6 0 3 
7 0 3 
8 0 3 
9 1 3 

質問は、私は3番目の列を得るのですかですか?

ありがとうございました。

答えて

4

Hmmm。 。 。これは前の行までの累積合計です(プラス1)。だから、SQL Serverの2012+に、あなたが行うことができます:

select t.*, 
     1 + sum(status) over (order by id) - status as rowgroupnumber 
from t; 
+0

を私はこれは私が出力として得るものです – Nicarus

+0

あなた 'rowgroupnumber'値にあなたが' + 1 'する必要があると思う:http://imgur.com/bdnyAfq – Nicarus

+0

@ニカルス。 。 。それは面白いことだ。私はそれをテキストに置き、それをクエリに入れなかった。 –

関連する問題