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. 전체 데이터 결과
'데이터베이스' 카테고리의 다른 글
[SQL] SELECT 문 실행 순서 (0) | 2023.09.01 |
---|---|
[SQL] 서브쿼리 개념 (0) | 2023.09.01 |
[SQL] DML (Data Manipulation Language) 데이터 조작 언어 (0) | 2023.09.01 |
[SQL] DECODE 함수, CASE 문 (0) | 2023.08.31 |
[SQL] 현재 시간 형식 지정해서 출력 (0) | 2023.08.31 |