Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL WITH ROLLUP 수정자란 무엇이며 어떤 용도로 사용될까?

WITH ROLLUPGROUP BY 절과 함께 사용되는 MySQL의 수정자(modifier)입니다. 이 수정자를 사용하면 그룹별 집계 결과 외에도, 전체 데이터를 대표하는 상위 수준의 요약(총계) 행이 결과에 자동으로 추가됩니다.

WITH ROLLUP의 주요 특징

일반적인 GROUP BY 쿼리는 각 그룹별로 집계된 값만 반환하지만, WITH ROLLUP을 적용하면 다음과 같은 장점이 있습니다.

  • 각 그룹의 소계와 함께 전체 합계가 마지막 행에 표시됩니다.
  • 총계 행의 그룹 기준 컬럼 값은 NULL로 표시되어 일반 그룹 행과 구분됩니다.
  • 보고서나 통계 화면에서 별도의 쿼리 없이 한 번의 조회로 소계와 총계를 모두 얻을 수 있어 편리합니다.

사용 예제

아래 예제에서는 ratelist 테이블의 Item별 가격 합계를 구하면서, WITH ROLLUP 수정자를 통해 마지막 행에 전체 가격의 총합(3237)이 함께 출력되었습니다.

mysql> Select Item, SUM(Price) AS Price from ratelist Group by item WITH ROLLUP;
+------+-------+
| Item | Price |
+------+-------+
| A    |   502 |
| B    |   630 |
| C    |  1005 |
| h    |   850 |
| T    |   250 |
| NULL |  3237 |
+------+-------+
6 rows in set (0.00 sec)

결과를 보면 Item별 합계(A~T)가 각각 출력되고, Item 값이 NULL인 마지막 행에는 전체 가격의 총합인 3237이 표시됩니다. 이처럼 WITH ROLLUP은 GROUP BY의 확장 기능으로, 소계와 총계를 손쉽게 함께 조회해야 하는 경우 유용하게 활용할 수 있습니다.