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. 먼저 컬럼1, 컬럼2 별 집계를 하고,
  2. 그 다음 컬럼1 별 집계,
  3. 마지막으로 전체 합계를 출력합니다.

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