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,()      

 

https://images.app.goo.gl/Zp1nn9zoz3dM6bxV7

(좌) ROLLUP 함수 <- 3개 컬럼  / (우) CUBE 함수 <- 2개컬럼

 

 

어떤 그룹함수인지 쉽게 구분하는법

1. null 찾기

2. 총합 행 찾기

총합행이 있으면 O → rollup(한쪽,계층), cube(양쪽)

총합행이 없으면 X → grouping sets

반응형
LIST