특정값이 나오는범위까지 그룹을 나누고 싶은데 가능할까요? 0 2 943

by 혼수상태 [SQL Query] [2020.04.01 13:57:09]


안녕하세요 sql 문의좀 드릴려고 합니다.

아래와 같은 구분과 code라는 컬럼만 있는 데이터에서

9999까지 나오기 전까지는 하나의 그룹으로 보고싶은데

가능할까요??

도움 부탁 드립니다.

 

 구분 code 그룹
aa 1234 aa
aa 1235
aa 9999
aa 1236 bb
aa 2348
aa 3568
aa 9999
aa 1111 cc
aa 9999
by 마농 [2020.04.01 14:21:43]

정렬 기준 항목이 안보이네요?
 

WITH t AS
(
SELECT 'aa' gb, 1 seq, 1234 cd FROM dual
UNION ALL SELECT 'aa', 2, 1235 FROM dual
UNION ALL SELECT 'aa', 3, 9999 FROM dual
UNION ALL SELECT 'aa', 4, 1236 FROM dual
UNION ALL SELECT 'aa', 5, 2348 FROM dual
UNION ALL SELECT 'aa', 6, 3568 FROM dual
UNION ALL SELECT 'aa', 7, 9999 FROM dual
UNION ALL SELECT 'aa', 8, 1111 FROM dual
UNION ALL SELECT 'aa', 9, 9999 FROM dual
)
SELECT gb, seq, cd
     , COUNT(DECODE(cd, 9999, 1)) OVER(PARTITION BY gb ORDER BY seq
       ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) + 1 grp
  FROM t
;

 


by 혼수상태 [2020.04.01 14:30:56]

마농님!!!감사합니다~~!!!! ( _ _ )

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입