SQL - GROUP 함수들(ROLL UP, CUBE , GROUPING SETS)

2023. 3. 13. 15:50카테고리 없음

반응형

ROLL UP

- 부분합계와 전체합계 값을 보여준다.

- 인수의 순서에 영향을 받는다.

ex) 

SELECT 성별, 연령, SUM(  점수 )

FROM 테스트

GROUP BY ROLLUP(성별, 연령)

ORDER BY 성별, 연령;

 

각 성별에 따른 연령 별 점수합 뿐만 아니라 첫번째 인자인 성별당 합계 그리고 전체합계도 출력을 해준다.

 

정리하면 

ROLLUP(인자1, 인자2)

- 인자1 X 인자2 별 집계값

- 인자1 별 집계값

- 전체 집계값

 

 

CUBE

ex) 

SELECT 성별, 연령, SUM(  점수 )

FROM 테스트

GROUP BY CUBE(성별, 연령)

ORDER BY 성별, 연령;

 

각 성별에 따른 연령 별 점수합 뿐만 아니라 첫번째 인자인 성별당 합계, 두번째 인자인 연령별 한계, 전체 합계를 출력 해준다. 즉 그룹화될 수 있는 모든 경우에 대해 집계를 해준다.

 

 

정리하면 

CUBE(인자1, 인자2)

- 인자1 X 인자2 별 집계값

- 인자1 별 집계값

- 인자2 별 집계값

- 전체 집계값

 

 

GROUPING SETS

ex) 

SELECT 성별, 연령, SUM(  점수 )

FROM 테스트

GROUP BY GROUPING SETS(성별, 연령)

ORDER BY 성별, 연령;

 

성별 별 합계와 연령별 합계 출력 해준다.

 

 

정리하면 

GROUPING SETS(인자1, 인자2, (인자1,인자2))

- 인자1 별 집계값

- 인자2 별 집계값

- (인자1,인자2)와 같이 괄호로 묶어주면 인자1 x 인자2 별 집계값

 

 

참고)

- 그룹함수에 의해 집계된 결과에서 집계 대상 컬럼 값은 NULL이 아니라 값이 출력된다. 아래와 같이 성별 별로 집계될때 F나 M으로 값이 출력된다.

- 그룹함수에 의해 집계된 결과에서 집계대상이 아닌 GROUP 대상 칼럼 값은 NULL로 출력된다. 아래와 같이 성별 별로 집계 될때 연령대는 NULL로 출력된다.

- ROLLUP, CUBE, GROUPING SETS 모두 일반 그룹 함수로 동일한 결과를 출력할 수 있다.

- ROLLUP은 함수내 인자의 순서에 따라 다른 결과를 반환하는 함수이다.

 

출저) [SQLD 자격증] 8만명이 유튜브에서 검증한 메타코드M의 대표강의 | Udemy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형