본문 바로가기

데이터베이스

[SQL] ROLLUP, CUBE 함수

ROOLUP, CUBE, GROUPING SETS는 GROUP BY 절에 지정하는 특수함수이다.

 

형식

SELECT [조회할 열 이름], [열2 이름], ...
FROM [조회할 테이블 이름]
WHERE [조회할 행을 선별하는 조건식]
GROUP BY ROLLUP / CUBE [그룹화 열 지정(여러 개 지정 가능)];

그룹화 열 지정을 통해  그룹화 데이터의 합계를 함께 출력할 수 있다.

 

1. ROLLUP 함수

 

예시 코드

SELECT DEPTNO, JOB, COUNT(*), MAX(SAL), SUM(SAL), AVG(SAL)
	FROM EMP
GROUP BY ROLLUP(DEPTNO, JOB);

 

ROLLUP 함수는 소그룹부터 대그룹의 순서로 각 그룹별 결과를 출력하고 마지막에 총 데이터의 결과를 출력한다.

 


 

2. CUBE 함수

 

예시 코드

SELECT DEPTNO, JOB, COUNT(*), MAX(SAL), SUM(SAL), AVG(SAL)
	FROM EMP
GROUP BY CUBE(DEPTNO, JOB)
ORDER BY DEPTNO, JOB;

CUBE 함수는 지정한 모든 열에서 가능한 조합의 결과를 모두 출력한다.

 

 


ROLLUP(A, B, C)

1. A 그룹별 B 그룹별 C 그룹에 해당하는 결과 출력

2. A 그룹별 B 그룹에 해당하는 결과 출력

3. A 그룹에 해당하는 결과 출력

4. 전체 데이터 결과 출력

 

CUBE(A, B, C)

1. A 그룹별 B 그룹별 C 그룹에 해당하는 결과 출력

2. A 그룹별 B 그룹의 결과 출력

3. B 그룹별 C 그룹의 결과 출력

4. A 그룹별 C 그룹의 결과 출력

5. A 그룹 결과

6. B 그룹 결과

7. C 그룹 결과

8. 전체 데이터 결과