안녕하세요 고수님들께 질문좀 드릴게있습니다.^^
출력형태가 아래와같이 출력을 하려고 합니다.
------------------------------------
지역 출신학교 데이터1 데이터2
------------------------------------
서울 서울초교1 0 0
서울 서울초교2 1 2
소계 1 2
------------------------------------
충청 충청초교1 3 1
충청 충청초교2 1 0
소계 4 1
------------------------------------
계 5 3
쿼리조건을 어떻게 줘야하는것인지, 서브쿼리를 이용해서 해야되는것인지 궁금합니다.
각 지역별 소계값이 나오고 마지막에는 총계가 나오는것인데요.
어떻게 풀어가는게 좋을지 고수님들의 의견좀 부탁드립니다.
GROUP BY ROLLUP 을 이용해보세요.
관련 강좌글입니다. http://www.gurubee.net/lecture/2678
WITH TT(지역, 출신학교, 데이터1, 데이터2) AS ( SELECT '서울', '서울초교1', 0, 0 FROM DUAL UNION ALL SELECT '서울', '서울초교2', 1, 2 FROM DUAL UNION ALL SELECT '충청', '충청초교1', 3, 1 FROM DUAL UNION ALL SELECT '충청', '충청초교2', 1, 0 FROM DUAL ) SELECT DECODE(GROUPING_ID(지역, 출신학교),0,지역,1,'소계','계') "지역" , 출신학교, SUM(데이터1) "데이터1", SUM(데이터2) "데이터2" FROM TT GROUP BY ROLLUP (지역, 출신학교) ;