구름조아
그룹함수, Rollup, Grouping Sets, Cube 본문
1. 그룹함수
테이블내 데이터들을 각 컬럼 별로 그룹화 아여 그룹별 결과를 출력하는 함수.
UNION, UNION ALL으로 대체 가능
ROLLUP | 해당 컬럼의 소개 및 총계를 출력 |
GROUPING | 컬럼의 소개 여부를 출력 |
GROUPING SETS | 집계 대상 컬럼에 대한 소계 출력 |
CUBE | 결합 가능한 모든 경우의 수에 대한 집계 출력 |
2. ROLLUP
계층 구조이기에 기준 컬럼수가 2개 이상일 때 순서에 따라 출력이 달라진다.
select class_num , subject , sum(score) as sum_score from exam_result group by rollup (calss_num, subject); |
3. GROUPING SETS
- 집계 대상 컬럼에 대한 소계를 구할 수 있는 그룹함수.
- 기준 컬럼의 순서와 결과는 상관없음.
select class_num , subject , sum(score) as sum_score from exam_result group by grouping set (calss_num, subject); |
4. CUBE
- 결합 가능한 모든 값에 대한 다차원 집계를 출력.
- 기준 컬럼의 순서와 결과는 상관 없음.
- 다른 그룹 함수들 보다 성능상 불리함.
select class_num , subject , sum(score) as sum_score from exam_result group by cube (calss_num, subject); |
5. GROUPING 함수
- 해당 컬럼에서 소계 여부를 확인 할 수 있는 함수
- 이 결과를 정렬에 사용 할 수 있다.
- Having 절에 사용 가능 하다.
select class_num , subject , sum(score) as sum_score , grouping(class_num) class_num , grouping(subject) subject from exam_result group by cube (calss_num, subject); |
ROLLUP | 기준 컬럼이 1개 일 때 CUBE와 같음 기준 컬럼 순서에 따라 결과 다름 |
GROUPING SETS | 기준 컬럼 순서와 결과는 무관 |
CUBE | 기준 컬럼이 1개 일 때 ROLLUP과 같음 기준 컬럼의 순서와 결과는 무관 |
'SQLD자격증공부 > SQL활용' 카테고리의 다른 글
윈도우함수 (0) | 2023.05.11 |
---|---|
계층형 SQL (0) | 2023.05.11 |
비등가조인, 집합연산자, Union all, Intersect (0) | 2023.05.11 |
서브쿼리, 스칼라 서브쿼리, 인라인뷰, Exsits (0) | 2023.05.11 |
Join, Cross Join, Inner Join, Natural Join, Outer Join (0) | 2023.05.09 |