2016-07-22 4 views
0

나는 순서대로 행 그룹을 가지고 있습니다. 열 "상태"에는 0/1 값만 두 개 있습니다. 이제 각 0/1 세트에 대해 시퀀스 번호/그룹 번호를 추가하고 싶습니다. 끝에는 0에서 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 

문제는 내가 세 번째 열을 얻는 방법입니다 어떻게 만 1

예를 들어있을 때 증가 일련 번호와 같은 새 열을 추가하는 방법은 무엇입니까?

감사합니다.

답변

4

흠. . . 이전 행까지 누적 합계 (1을 더한 값)입니다. 그래서, SQL 서버 2012+, 당신은 할 수 있습니다 :

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

을 당신이'+ 당신의'rowgroupnumber' 값 – Nicarus

+0

에 1'이 내가 출력으로 무엇을 얻을 필요가 있다고 생각 : http://imgur.com/bdnyAfq – Nicarus

+0

@Nicarus. . . 그거 재밌 네요. 나는 그것을 텍스트에 넣은 다음 쿼리에 넣지 않았습니다. –

관련 문제