SQL
SQL: ROLLUP
dewstream
2025. 9. 29. 08:00
728x90
※ SQL: ROLLUP.
안녕하세요. 듀스트림입니다.
오늘은 제가 애용하는 함수인 ROLLUP에 대한 내용입니다.
주로 수행 이력 건 수 체크, 오브젝트 집계, 유저 상태별 집계 등에 사용 중입니다.
ROLLUP은 GROUP BY의 확장 기능으로, 계층적으로 집계 결과를 한 번에 구할 때 사용합니다.
1. 기본 구문
SELECT 컬럼1, 컬럼2, 집계함수
FROM 테이블
GROUP BY ROLLUP(컬럼1, 컬럼2);
- 먼저 컬럼1, 컬럼2 별 집계를 하고,
- 그 다음 컬럼1 별 집계,
- 마지막으로 전체 합계를 출력합니다.
2. 매출 집계
SELECT region, product, SUM(sales) AS total_sales
FROM sales
GROUP BY ROLLUP(region, product)
ORDER BY region, product;

3. 가독성 향상 (COALESCE 활용)
SELECT
COALESCE(region, '전체') AS region,
COALESCE(product, '소계') AS product,
SUM(sales) AS total_sales
FROM sales
GROUP BY ROLLUP(region, product)
ORDER BY region, product;
- 결과에서 NULL 대신 "소계", "전체"를 표기.

+ MySQL/MariaDB는 ROLLUP 키워드를 GROUP BY 끝에 붙여서 사용합니다.
GROUP BY col1, col2 WITH ROLLUP
오늘은 여기까지~
728x90