2016-07-22 61 views
0

我按順序有一組行。列「狀態」只有兩個值0/1。現在,我想爲每個0/1組添加一個序列號/組號。可以有1到多個0的行,但最後每組只有一個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 

的問題是如何獲取的第三列?

謝謝。

回答

4

嗯。 。 。這是上一行(加1)的累計總和。因此,在SQL Server 2012+,你可以這樣做:

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

我認爲你需要'+ 1'您'rowgroupnumber'價值 – Nicarus

+0

這是我所得到的作爲輸出:http://imgur.com/bdnyAfq – Nicarus

+0

@Nicarus。 。 。這很有趣。我把它放在文本中,然後沒有把它放在查詢中。 –