WITH ROLLUP
을 사용하면 그룹화된 열에서 하위 항목의 합계와 전체 합계를 반환합니다. 이것은 데이터 요약 및 분석에 유용하며 보고서 작성 등의 작업에서 자주 사용됩니다.
예를 들어, 주문 데이터가 있는 테이블에서 날짜별로 주문량을 그룹화하고 부분 합계 및 전체 합계를 보고 싶을 때WITH ROLLUP
을 사용할 수 있습니다. 이를 통해 날짜별 주문량을 요약하고 일별, 주간, 월간, 연간 등의 합계를 확인할 수 있습니다.
SELECT title, AVG(rating) FROM full_reviews
GROUP BY title WITH ROLLUP;
마지막에 Null
은 전체 테이블에 대한 통계 요약이다.
그 말인 즉슨, Archer
에 대한 평균값은 8.12
이고,
Arrested Development
에 대한 평균값은 8.08
,
Bob's Burgers
에 대한 평균값은 7.52
....
WITH ROLLUP
을 사용하여 title
로 묶인 각 그룹의 평균값이 도출되고, 마지막 전체 평균값까지 출력됨을 확인했다.
COUNT
함수를 적용하면 다음과 같다.
마지막에 Null
은 전체 테이블에 대한 통계 요약.
잘 작동하는 것을 확인했다.
WITH ROLLUP
을 사용한 아래 쿼리는 어떻게 그룹화가 진행될까?
SELECT released_year, genre, title, AVG(rating) FROM full_reviews
GROUP BY released_year, genre, title WITH ROLLUP
ORDER BY released_year;
- 먼저
released_year
기준으로 그룹화한다.released_year
가 같은 것들이 모여 하나의 그룹을 형성한다.- 1️⃣에서 만들어진 그룹에
genre
를 추가한다.
released_year, genre
가 같은 것들이 모여 세분화된 그룹을 형성한다.- 2️⃣에서 만들어진 그룹에
title
을 추가한다.
released_year, genre, title
가 같은 것들이 모여 더욱 세분화된 그룹을 형성한다.
released_year, genre
로 그룹화를 진행하면 아래와 같은 결과를 확인할 수 있음.SELECT released_year, genre, AVG(rating) FROM full_reviews GROUP BY released_year, genre WITH ROLLUP ORDER BY released_year;
2014년도에 gerne
가 여러개인 것을 확인할 수 있다.
동일한 년도에 각각 다른 gerne
로 구분되어 그룹화된 것을 확인할 수 있으며, 평균 rating도 gerne
별로 다르다는 것을 확인가능하다.
2014년 전체 평균 통계는 8.55
인 것도 확인할 수 있다.