[Oracle] 오라클 CUBE 함수 사용법 (합계, 소계)
- 데이터베이스/오라클
- 2021. 3. 12.
오라클에서 합계와 소계를 구하기 위해서는 ROLLUP 함수를 많이 사용한다. ROLLUP 함수는 소계와 합계를 순서에 맞게 반환하지만 CUBE 함수는 계산 가능한 모든 소계와 합계를 반환한다.
기본사용법
SELECT job
, SUM(sal)
FROM emp
GROUP BY CUBE(job)
ROLLUP 함수와 다르게 합계를 먼저 표시한다.
그룹 컬럼이 여러개인 경우
SELECT job
, deptno
, SUM(sal)
FROM emp
GROUP BY CUBE(job, deptno)
그룹 컬럼으로 산출할 수 있는 모든 소계와 합계를 반환한다.
원하는 소계, 합계 추출하기 - 1
SELECT job
, deptno
, SUM(sal)
FROM emp
GROUP BY CUBE(job, deptno)
HAVING GROUPING_ID(job, deptno) = 1
GROUPING_ID 함수를 사용하여 JOB 소계만 추출 한다.
원하는 소계, 합계 추출하기 - 2
SELECT job
, deptno
, SUM(sal)
FROM emp
GROUP BY CUBE(job, deptno)
HAVING GROUPING_ID(job, deptno) = 2
GROUPING_ID 함수를 사용하여 DEPTNO 소계만 추출 한다.
순차적인 소계, 합계의 쿼리 결과를 원하시면 아래를 참고하면 된다.
[Oracle] 오라클 ROLLUP 함수 사용법 (합계, 소계) |