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 상품IDSUM(매출액FROM 월별매출 GROUP BY CUBE(상품ID);

 

 

728x90