GROUPING
(day, month, year)와 같이 정렬된 컬럼 목록을 받아, 집계의 각 수준에 대한 소계와 마지막으로 전체 합계를 계산합니다. CUBE는 지정된 컬럼의 가능한 모든 조합에 대한 소계를 계산합니다. GROUPING은 ROLLUP 또는 CUBE가 반환한 행 중 어떤 것이 상위 집계 행인지, 그리고 어떤 것이 수정되지 않은 GROUP BY에서 반환되는 행인지를 식별합니다.
GROUPING 함수는 여러 컬럼을 인수로 받아 비트마스크를 반환합니다.
1은GROUP BY에ROLLUP또는CUBE수정자를 적용해 반환된 행이 소계임을 나타냅니다0은ROLLUP또는CUBE가 반환한 행이 소계가 아님을 나타냅니다
GROUPING SETS
샘플 데이터 불러오기
간단한 쿼리
GROUPING SETS를 사용해 여러 GROUP BY SQL 문 비교하기
CUBE와 GROUPING SETS 비교
CUBE(datacenter,distro,version)는 그다지 적절하지 않은 계층 구조를 만듭니다. 두 배포판 전체에 걸쳐 version을 살펴보는 것은 의미가 없습니다(Arch와 RHEL은 릴리스 주기나 버전 명명 기준이 서로 다르기 때문입니다). 이어지는 GROUPING SETS 예시는 distro와 version을 같은 세트로 그룹화하므로 더 적절합니다.
위 예시의 Version은 distro와 연관되지 않으면 의미가 없을 수 있습니다. 커널 버전을 추적하는 경우에는 커널 버전이 어느 distro와도 연관될 수 있으므로 의미가 있을 수 있습니다. 다음 예시처럼 GROUPING SETS를 사용하는 편이 더 나은 선택일 수 있습니다.