DBMS (MySQL)/DBMS (Oracle)
[DB] ROLLUP과 CUBE
(งᐛ)ว
2023. 10. 17. 23:10
728x90
ROLLUP과 CUBE는 GROUP BY 절과 함께 사용하는 것이 일반적
데이터 계층화, 데이터 요약, 데이터 집계작업을 수행하는데 사용됨
다음과 같은 월별매출 테이블이 있다고 가정하자

ROLLUP() :
여러 열을 사용하여 하위 합계 및 총계 생성 가능
가장 상위 계층부터 하위 계층까지 각 계층의 소계를 포함
ROLLUP(A) : A 그룹핑 -> 합계
ROLLUP(A,B) : A,B 그룹핑 -> A소계/합계
ROLLUP(A,B,C) : A,B,C 그룹핑 -> (A소계,B소계)/합계
SELECT 상품ID, 월, SUM(매출액) FROM 월별매출 GROUP BY ROLLUP(상품ID, 월);

CUBE() :
가능한 모든 조합의 데이터 결과 생성
ROLLUP보다 더 상세한 데이터 제공
CUBE(A) : A 그룹핑 -> 합계
CUBE(A,B) : A,B 그룹핑 / A 그룹핑 / B 그룹핑 -> (A소계,B소계)/합계
SELECT 상품ID, 월, SUM(매출액) FROM 월별매출 GROUP BY CUBE(상품ID, 월);

728x90