쿼리로 특정 조건이 되는 것을 카운트할 수 있겠는데... 아래와 같이 밑으로 늘어선 데이터를
어찌 카운트할지는 도무지 실력이 안되네요! 제발 도와주십시오! 테이블이 아래와 같을 때...
>> 알고 싶은 것은 "종류" 필드에서 밑으로 "사과"가 몇번 연속된 것이 몇번인가?
(종류 필드에는 제가 아는 2개의 데이터 종류만 있으며, 색상 필드에도 제가 아는 3개의 데이터 종류만 있습니다.
아래의 경우라면, 종류 필드에서는....
- 사과는 다섯번연속이 한번
- 사과는 세번 연속이 한번
색상 필드에서는....
- 파랑은 세번 연속이 한번
- 파랑은 두번 연속이 한번
- 빨강은 두번 연속이 두번
... 이런 식입니다.
ID 종류 색상
------------------------------------
1 사과 파랑
2 사과 파랑
3 사과 파랑
4 배 흰색
5 사과 빨강
6 배 빨강
7 사과 파랑
8 사과 파랑
9 사과 빨강
10 사과 흰색
11 사과 빨강
12 배 빨강
.
.
.
Comment 1
-
건우아빠
2018.10.16 12:13
with resas(select 1 ID , '사과' 종류 , '파랑' 색상 union allselect 2 , '사과' , '파랑' union allselect 3 , '사과' , '파랑' union allselect 4 , '배' , '흰색' union allselect 5 , '사과' , '빨강' union allselect 6 , '배' , '빨강' union allselect 7 , '사과' , '파랑' union allselect 8 , '사과' , '파랑' union allselect 9 , '사과' , '빨강' union allselect 10 , '사과' , '흰색' union allselect 11 , '사과' , '빨강' union allselect 12 , '배' , '빨강') ,result as(select top 100 percent *, ROW_NUMBER() over ( order by 종류, id ) 종류no, ROW_NUMBER() over ( order by 색상,id ) 색상nofrom resorder by 종류, id)select * , 11 - ID + 종류no , 11 - ID + 색상nofrom resultorder by IDreturn ;