Rollup과 Cube는?
- GROUP BY 구문의 결과에 소계 및 합계 정보를 추가로 나타내 주는 함수
- 복잡한 과정 없이 간단한 구문만으로 소계 정보를 쉽게 구할 수 있다.
- Rollup : 단계별 소계
- Cube : 모든 경우의 수에 대한 소계
Rollup 기본예제
- 아래는 부서별 급여합계와 전체 합계를 조회하는 예제이다.
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
Rollup 예제 2
아래는 부서별 사원의 급여와 소계, 그리고 전체 합계(총계)를 조회하는 예제이다
ELECT 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
GROUP BY ROLLUP (DEPTNO, EMPNO) : 롤업의 항목을 오른쪽부터 하나씩 차례로 없애가며 그룹바이한 결과의 합집합
'프로그래밍 > DB 외' 카테고리의 다른 글
리눅스 명령어 모임 (0) | 2020.04.19 |
---|---|
ajax 에서 에러처리 방법 (0) | 2020.04.03 |
오라클 12 SCOTT 유저 로 접속하기 (0) | 2020.03.21 |
오라클 패스워드 모를때 (0) | 2020.03.14 |
댓글