SQL

REPORT GROUP 함수 - ROLLUIP, CUBE, GROUPING

행복하게사는게꿈 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값이 출력된다.

 

 

- 실습(총계 넣기)

 

 

- 총  계 , 소계 넣기