아래는 부서별 급여합계와 전체 합계를 조회하는 예제이다.
SELECT deptno
, SUM(sal) s_sal
FROM emp
GROUP BY ROLLUP(deptno)
;
-- ROLLUP 연산으로 29025 출력
DEPTNO S_SAL
------- ----------
10 8750
20 10875
30 9400
29025
아래는 UNION ALL을 이용하여 위 ROLLUP 예제와 동일한 결과를 조회하는 예제이다.
SELECT deptno
, SUM(sal) s_sal
FROM emp
GROUP BY deptno
UNION ALL
SELECT NULL deptno
, SUM(sal) s_sal
FROM emp
;
DEPTNO S_SAL
------- ----------
30 9400
20 10875
10 8750
29025
아래는 부서별 사원의 급여와 소계, 그리고 전체 합계(총계)를 조회하는 예제이다
SELECT deptno
, empno
, SUM(sal) s_sal
FROM emp
GROUP BY ROLLUP (deptno, empno)
;
DEPTNO EMPNO S_SAL
------- ---------- ----------
10 7782 2450
10 7839 5000
10 7934 1300
10 8750
20 7369 800
20 7566 2975
20 7788 3000
20 7876 1100
20 7902 3000
20 10875
30 7900 950
30 7499 1600
30 7521 1250
30 7654 1250
30 7698 2850
30 7844 1500
30 9400
29025
- 강좌 URL : http://www.gurubee.net/lecture/2678
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.
- Rollup : 단계별 소계
- Cube : 모든 경우의 수에 대한 소계
말로 정리하려니 조금 헷갈렸었는데 이걸보니 좀 명확해졌네요.
감사합니다 ㅎㅎ
Rollup 간단하면서 아주좋은 함수군요... 굿~~
안녕하세요 질문이 있어 남겨봅니다 ROLLUP을 사용하게되면 SQL성능상에 문제가 생기지는 않는지 궁금합니다 UNION과 비교했을 때 어떠한지요