롤업

롤업 구문은 단일 결과 세트의 다중 그룹화 레벨에서 집계 결과를 제공합니다. 예를 들어, 다음은 세 그룹화 레벨에서 계수를 리턴합니다.

SELECT <col1>, <col2>, COUNT(*) FROM <table> GROUP BY ROLLUP (col1, 
col2);
그룹 레벨은 다음과 같이 리턴되며, 결과는 GROUP BY 옵션이 동시에 지정된 것과 같습니다.
GROUP BY col1, col2
GROUP BY col1
GROUP BY ()

GROUP BY () 구문은 전체 집계를 지정하는 것과 동등합니다(GROUP BY가 전혀 없는 것과 같음).

이전 롤업 조작의 결과는 다음 UNION 결과와 동등합니다.
SELECT col1, col2, COUNT(*) FROM <table> GROUP BY col1, col2 UNION ALL
SELECT col1, null as col2, count(*) FROM <table> GROUP BY col1 UNION 
ALL
SELECT null as col1, null as col2, count(*) FROM <table>;
다음 예를 고려하십시오.
SELECT state, city, COUNT(*) FROM citizens GROUP BY ROLLUP (state, 
city);
이 예의 결과는 다음과 같습니다.
  • 각 state/city의 계수
  • 각 state의 계수
  • 전체 계수