매출 데이터를 집계할 때,
지역별, 상품별 합계뿐만 아니라
소계(지역별)와 전체 총계까지 한 번에 보고 싶은 경우가 있습니다.
이럴 때 GROUP BY와 UNION을 여러 번 써서 처리할 수 있습니다.
SELECT region
, product
, SUM(sales)
FROM orders
GROUP BY region
, product
UNION ALL
SELECT region
, NULL
, SUM(sales)
FROM orders
GROUP BY region
UNION ALL
SELECT NULL
, NULL
, SUM(sales)
FROM orders;
그러나, 이 방식은 번거롭습니다.
ROLLUP을 사용하면 한 줄로 소계와 총계를 모두 계산할 수 있습니다.
SELECT region
, product
, SUM(sales)
FROM orders
GROUP BY ROLLUP (region, product);
이렇게 하면,
• region + product별 합계
• region별 소계
• 전체 총계
까지 자동으로 출력됩니다.
✔️ ROLLUP을 쓰면 다중 집계(소계, 총계)를 한 번에 처리할 수 있습니다.