ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REPORT GROUP 함수 - ROLLUIP, CUBE, GROUPING
    SQL 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

    댓글

Designed by Tistory.