-
REPORT GROUP 함수 - ROLLUIP, CUBE, GROUPINGSQL 2020. 2. 13. 20:57
데이터 분석을 위한 세가지 함수
1. AGGREGATE FUNCTION (집계 함수) : COUNT, SUM, AVG, MAX 등의 함수
2. GROUP FUNCTION
3. WINDOW FUNCTION
-> 분석함수 (Analytic Function)나 순위함수 (Rank Function)로도 알려짐
데이터 웨어하우스에서 발전된 기능
GROUPING 함수
1. ROLLUP : 집계 함수를 제외하고 소그룹 간의 소계를 계산
1) GROUP BY의 확장된 형태로 사용
2) 병렬로 수행이 가능
3) 그룹핑 컬럼 수 (N) -> 소계 (N+1) ??????????
4) ROLLUP의 인수는 계층구조이므로 인수 순서가 바뀌면 수행결과도 바뀜
- ROLLUP 컬럼이 한개
- ROLLUP 컬럼이 두개
* SUBGROUP 생성 순서
-> JOB, DEPTNO 컬럼에 모두 값이 있는 ROW -> GROUP BY job, deptno
노란색 줄 친 DEPTNO 컬럼에 값이 없는 ROW -> GROUP BY job
두 컬럼 모두 값이 없는 ROW -> GROUP BY NULL
2. CUBE : GROUP BY 항목 간 다차원적인 소계를 계산
- 소계만 생성한 ROLLUP과 달리 CUBE는 결합 가능한 모든 값에 대해 다차원 집계를 생성
- 그룹핑 컬럼의 순서를 바꾸어서 또 한번 쿼리를 수행하므로 시스템 연산 대상이 많음 -> 시스템 부하
- 그룹핑 컬럼이 가질 수 있는 모든 컬럼에 대하여 소계를 생성해야 하는 경우 CUBE를 씀
EX) 표시된 인수들에 대한 계층별 집계
- 계층 구조인 ROLLUP과는 달리, 평등한 관계이므로 인수의 순서가 바뀌어도 정렬은 다를 수 있으나 데이터 조회
결과는 같음
- 그룹핑 컬럼 수 N개 -> 2의N승 레벨의 소계 생성
3. GROUPING SETS : 특정 항목에 대한 소계를 계산
-실습
-> GROUP BY job, deptno일 때 0 0
GROUP BY job 일 때 0 1
GROUP BY NULL 일 때 1 1
* 즉 GROUP BY로 묶여지지 않은 경우 1값이 출력된다.
- 실습(총계 넣기)
- 총 계 , 소계 넣기
'SQL' 카테고리의 다른 글
WITH절 (0) 2020.02.17 서브쿼리 UPDATE (0) 2020.02.14 WINDOW FUNCTION (윈도우 함수) (0) 2020.02.13 Merge (통합) (0) 2020.02.13 Multiple INSERT (0) 2020.02.13