그룹 함수
데이터를 GROUP BY 하여 나타낼 수 있는 데이터를 구하는 함수이다. 역할에 따라 구분해보면 집계 함수와 소계(총계) 함수로 나눌 수 있다.
- 집계 함수 - COUNT, SUM, AVG, MAX, MIN 등
- 소계(총계) 함수 - ROLLUP, CUBE, GROUPING 등
1. ROLLUP
소그룹 간의 소계 및 총계를 계산하는 함수
ROLLUP(A) | - A로 그룹핑 - 총합계 |
ROLLUP(A, B) | - A, B로 그룹핑 - A로 그룹핑 - 총합계 |
ROLLUP(A, B, C) | - A, B, C로 그룹핑 - A, B로 그룹핑 - A로 그룹핑 - 총합계 |
2. CUBE
소그룹 간의 소계 및 총계를 다차원적으로 계산할 수 있는 함수이다. GROUP BY가 일방향으로 그룹핑하여 소계를 구했다면 CUBE는 조합할 수 있는 모든 그룹에 대한 소계를 집계한다.
CUBE(A) | - A로 그룹핑 - 총합계 |
CUBE(A, B) | - A, B로 그룹핑 - A로 그룹핑 - B로 그룹핑 - 총합계 |
CUBE(A, B, C) | - A, B, C로 그룹핑 - A, B로 그룹핑 - A, C로 그룹핑 - B, C로 그룹핑 - A로 그룹핑 - B로 그룹핑 - C로 그룹핑 - 총합계 |
3. GROUPING SETS
특정 항목에 대한 소계를 계산하는 함수이다. 인자값으로 ROLLUP이나 CUBE를 사용할 수도 있다.
GROUPING SETS(A, B) | - A로 그룹핑 - B로 그룹핑 |
GROUPING SETS(A, B, ( )) | - A로 그룹핑 - B로 그룹핑 - 총합계 |
GROUPING SETS(A, ROLLUP(B)) | - A로 그룹핑 - B로 그룹핑 - 총합계 |
GROUPING SETS(A, ROLLUP(B, C)) | - A로 그룹핑 - B, C로 그룹핑 - B로 그룹핑 - 총합계 |
GROUPING SETS(A, B, ROLLUP(C)) | - A로 그룹핑 - B로 그룹핑 - C로 그룹핑 - 총합계 |
4. GROUPING
GROUPING는 ROLLUP, CUBE, GROUPING SETS 등과 함께 쓰이며 소계를 나타내는 Row를 구분할 수 있게 해준다. ROLLUP, CUBE, GROUPING SETS에서는 소계를 나타내는 Row에서 그룹핑의 기준이 되는 컬럼을 제외하고는 모두 NULL 값으로 표현되었지만 GROUPING 함수를 이용하면 원하는 위치에 원하는 텍스트를 출력할 수 있다.
'[개발 언어 & 프레임워크] > SQL' 카테고리의 다른 글
[SQL] 윈도우 함수 (0) | 2023.01.18 |
---|---|
[SQL] 집합 연산자 - UNION ALL, UNION, INTERSECT, EXCEPT (0) | 2023.01.17 |
[SQL] 서브쿼리(Subquery) 정리 (0) | 2023.01.16 |
[SQL] JOIN 정리 (0) | 2023.01.16 |
[SQL] GROUP BY, HAVING 절 (0) | 2023.01.16 |