[Oracle] 오라클 CUBE 함수 사용법 (합계, 소계)

오라클에서 합계와 소계를 구하기 위해서는 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 소계만 추출 한다.

 

예제쿼리(테이블포함).txt
0.00MB

 

순차적인 소계, 합계의 쿼리 결과를 원하시면 아래를 참고하면 된다.

 

[Oracle] 오라클 ROLLUP 함수 사용법 (합계, 소계)
[Oracle] 오라클 GROUPING SETS 사용법 (합계, 소계)

 

 

댓글

Designed by JB FACTORY