SELECT 상품ID, 월, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY ROLLUP(상품ID, 월);
결과에 대한 정렬이 필요한 경우 ORDER BY절에 명시적으로 정렬 컬럼이 표시 되야한다.
CUBE는 인자로 주어진 컬럼의 결합 가능한 모든 조합에 대해서 집계를 수행하므로 다른 그룹 함수에 비해 시스템에 대한 부하가 크다.
그룹핑 컬럼의 개수가 n일 때, 2의 n승의 소계를 생성한다.
SELECT 상품ID, 월, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY CUBE(상품ID, 월);
SELECT 상품ID, 월, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY GROUPING SETS(상품ID, 월, (상품ID, 월));
ROLLUP과 달리 평등 관계이므로 인수의 순서가 바뀌어도 동일한 결과가 출력된다.
CUBE의 인자에 대한 모든 가능한 집합을 GROUPING SETS로 표현하면 동일한 결과가 출력된다.
SELECT 상품ID, 월, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY CUBE(상품ID, 월);
SELECT 상품ID, 월, SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY GROUPING SETS((상품ID), (월), (상품ID, 월), ());
SELECT
CASE GROUPING(상품ID) WHEN 1 THEN '모든 상품ID' ELSE 상품ID
END AS 상품ID,
CASE GROUPING(월) WHEN 0 THEN 월 ELSE '모든 월'
END AS 월,
SUM(매출액) AS 매출액
FROM 월별매출
GROUP BY ROLLUP(상품ID, 월);