쿼리질문이요 0 1 1,905

by 정민호 [SQL Query] [2010.11.23 22:54:10]



안녕하세요?
제목을 어떻게 적을줄 몰라서 그냥 이렇게 적었습니다.

테이블이 날짜와 구분(01:평일, 02:휴일) 2개의 컬럼이 있는데

날짜, 구분
20101101 01
20101102 01
20101103 01
20101104 01
20101105 01
20101106 02
20101107 02
20101108 01
20101109 01

이런식으로 데이터가 있을때  날짜가 들어오면 날짜의 구분이 '01' 이면 0으로 '02' 가 나오면 '01'이 나올때 까지의 count 를 리턴하고 싶습니다.

날짜, 구분 count
20101101 01 0
20101102 01 0
20101103 01 0
20101104 01 0
20101105 01 0
20101106 02 2
20101107 02 1
20101108 01 0
20101109 01 0

이런식으로 쿼리를 하고 싶습니다.
아직 초보라서요..
부탁드립니다.
날씨가 추운데 모두들 건강조심하시고요..  ^^
by 마농 [2010.11.24 08:26:25]
SELECT dt, gb
, COUNT(cnt) OVER(PARTITION BY gb, ddt-rn ORDER BY dt DESC) cnt
FROM (SELECT dt, gb
, DECODE(gb, '02', 1) cnt
, TO_DATE(dt, 'yyyymmdd') ddt
, ROW_NUMBER() OVER(PARTITION BY gb ORDER BY dt) rn
FROM t
)
ORDER BY dt
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입