상세 컨텐츠

본문 제목

오라클 ROLLUP 이해하기 & 예제

프로그래밍/Oracle

by ........? 2014. 1. 14. 16:40

본문

데이터를 추출하면서 소계 및 합계를 구할때 사용하면 유용.


--예제

WITH TEST_V AS(
SELECT '201311' 월, '영업' 부서, '1000' 판매량 FROM DUAL
 UNION ALL
SELECT '201312' 월, '영업' 부서, '500' 판매량 FROM DUAL
 UNION ALL
SELECT '201401' 월, '영업' 부서, '1200' 판매량 FROM DUAL
 UNION ALL
SELECT '201311' 월, '내근직' 부서, '400' 판매량 FROM DUAL
 UNION ALL
SELECT '201312' 월, '내근직' 부서, '100' 판매량 FROM DUAL
 UNION ALL
SELECT '201401' 월, '내근직' 부서, '700' 판매량 FROM DUAL
 UNION ALL
SELECT '201311' 월, '외근직' 부서, '2000' 판매량 FROM DUAL
 UNION ALL
SELECT '201312' 월, '외근직' 부서, '1100' 판매량 FROM DUAL
 UNION ALL
SELECT '201401' 월, '외근직' 부서, '4700' 판매량 FROM DUAL)

SELECT 월,
       부서,
       SUM(판매량) 판매량
  FROM TEST_V
 GROUP BY ROLLUP(월,부서);


--설명

1. ROLLUP은 그룹화할 조건이 있으며 우측부터 하나씩 제외해 가면서 결과를 반환한다.

2. ROLLUP(월,부서) 의 경우 우측에 있는 부서를 제외한 그룹화 결과를 반환한다.

3. 그 결과 각 월별로 그룹화된 소계값이 나오고, 마지막으로 월도 제외하고 그룹화하여 전체  합계가 나온다



--결과 ↓


관련글 더보기

댓글 영역