오라클 rollup null체크 1 1 2,988

by 밍밍밍밍 [2024.01.12 10:01:36]


안녕하세요.

통계를 뽑으려고 rollup을 사용중에 null이 있는경우 처리가 가능한지 궁금합니다

 

경기지역에 구군값이 null인경우

경기(전체)값이 2개가 생기는데 1개로 나오게 할수있나요?

 

WITH t AS
(
SELECT '서울' sido, '마포구' gugun, 1 cnt FROM dual
UNION ALL SELECT '서울', '관악구'  , 2 FROM dual
UNION ALL SELECT '경기', '수원시'  , 2 FROM dual
UNION ALL SELECT '경기', '남양주시', 9 FROM dual
UNION ALL SELECT '경기', null, 9 FROM dual
)
SELECT NVL2(sido, sido ||'('|| NVL(gugun, '전체') ||')', '계') loc
     , SUM(cnt) cnt
  FROM t
 GROUP BY ROLLUP(sido, gugun)
 ORDER BY sido, gugun NULLS FIRST
;

 

by 마농 [2024.01.12 10:13:38]
WITH t AS
(
SELECT '서울' sido, '마포구' gugun, 1 cnt FROM dual
UNION ALL SELECT '서울', '관악구'  , 2 FROM dual
UNION ALL SELECT '경기', '수원시'  , 2 FROM dual
UNION ALL SELECT '경기', '남양주시', 9 FROM dual
UNION ALL SELECT '경기', null, 9 FROM dual
)
SELECT DECODE(GROUPING_ID(sido, gugun), 0, sido ||'('|| gugun ||')'
                                      , 1, sido || '(전체)'
                                      , 3, '계'
                                      ) loc
     , SUM(cnt) cnt
  FROM t
 GROUP BY ROLLUP(sido, gugun)
 ORDER BY sido, GROUPING(gugun) DESC, gugun
;
-- http://gurubee.net/lecture/2679

 

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