MySQL | WITH ROLLUP 합계
GROUP BY
를 사용하면 GROUP BY
뒤에 나오는 컬럼별로 합계를 구해준다.
이때, 아쉬운 점이 있다면 항목별 합계에 전체 합계가 같이 나오게 하는 것이다.
이럴 때에 사용하는 것이 WITH ROLLUP
이다.
WITH ROLLUP
는 그룹별로 합계를 한번에 구할때 사용한다.
WITH ROLLUP 문법
SELECT "필드1", SUM("필드2")
FROM "테이블명"
GROUP BY "필드1"
WITH ROLLUP
WITH ROLLUP 예제
store_information 테이블
region_name | store_name | sales |
---|---|---|
West | Los Angeles | 1500 |
West | San Diego | 250 |
West | Los Angeles | 300 |
East | Boston | 700 |
위와 같은 테이블이 있다고 했을 때, 아래와 같이 명령문을 입력한다.
SQL 예제 1)
SELECT store_name, SUM(sales)
FROM store_information
GROUP BY store_name
WITH ROLLUP
실행 결과
store_name | SUM(sales) |
---|---|
Boston | 700 |
Los Angeles | 1800 |
San Diego | 250 |
NULL | 2750 |
마지막 열에 합계가 2750이 표시되고 있다. |
SQL 예제 2)
SELECT region_name, store_name, SUM(sales)
FROM store_information
GROUP BY region_name, store_name
WITH ROLLUP
실행 결과
region_name | store_name | SUM(sales) |
---|---|---|
East | Boston | 700 |
East | NULL | 700 |
West | Los Angeles | 1800 |
West | San Diego | 250 |
West | NULL | 2050 |
NULL | NULL | 2750 |
2번째 열에 East의 합계가 700이고, 4번째 열에 East의 합계가 2050이 표시되고 있다.
그리고, 5열에 이 모든 합계인 2750이 표시된다.
최종 수정 : 2019-12-22