DB/SQL 기초
그룹함수 - rollup, cube, grouping sets + grouping (group by 절)
케이(kay)
2022. 8. 14. 13:57
반응형
SMALL
1. ROLLUP 함수
GROUP BY ROLLUP(A): 전체합계, A소계
GROUP BY ROLLUP(A,B,C): 전체합계, A소계, AB소계, ABC소계
→ A가 기준
→ 증가되는 형태이기 때문에 AC소계 x
2. CUBE 함수
GROUP BY CUBE(A): 전체합계, A소계
GROUP BY CUBE(A,B,C): 전체합계, A소계, B소계, C소계, AB소계, AC소계, BC소계, ABC소계
→ 2^n 만큼 결과 수
→ 모든 조합의 합계를 생성하기 때문에 시스템에 무리를 줄 수 있다.
3. GROUPING SETS 함수
GROUP BY GROUPING SETS(A): A소계
GROUP BY GROUPING SETS(A,B,C): A소계, B소계, C소계
*GROUPING SETS ((A,B),A,()) => (A,B),(A),() == ROLLUP (A,B)와 동일
-> 순서를 바꿔보면 (),(A),AB) = ROLLUP(A,B)
GROUPING SETS (A,ROLLUP(B)) => A,B,()
(좌) ROLLUP 함수 <- 3개 컬럼 / (우) CUBE 함수 <- 2개컬럼
어떤 그룹함수인지 쉽게 구분하는법
1. null 찾기
2. 총합 행 찾기
총합행이 있으면 O → rollup(한쪽,계층), cube(양쪽)
총합행이 없으면 X → grouping sets
반응형
LIST