쿼리관련 질문좀 드릴께요 0 2 892

by 호야별리 [MySQL] [2015.04.03 14:26:59]


안녕하세요 고수님들께 질문좀 드릴게있습니다.^^

출력형태가 아래와같이 출력을 하려고 합니다.
------------------------------------
지역 출신학교 데이터1 데이터2
------------------------------------
서울 서울초교1   0           0
서울 서울초교2   1           2
소계                 1           2
------------------------------------
충청 충청초교1   3           1
충청 충청초교2   1           0
소계                 4           1
------------------------------------
  계                  5           3

쿼리조건을 어떻게 줘야하는것인지, 서브쿼리를 이용해서 해야되는것인지 궁금합니다.
각 지역별 소계값이 나오고 마지막에는 총계가 나오는것인데요.
어떻게 풀어가는게 좋을지 고수님들의 의견좀 부탁드립니다.     

by 비주류 [2015.04.03 14:43:09]

GROUP BY ROLLUP 을 이용해보세요.
관련 강좌글입니다. http://www.gurubee.net/lecture/2678


by 창조의날개 [2015.04.03 14:43:59]

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 (지역, 출신학교)
;

 

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