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