ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL - ROLLUP, CUBE, GROUPING, GROUPING SETS
    DataBase/Oracle 2022. 1. 20. 01:26
    728x90
    반응형

     

    ROLLOUP 함수

     

    • 그룹별 산출한 결과값의 집계를 계산하는 함수
    • GROUP BY 절에서만 사용한다
    • 인자로 전달받은 그룹 중에 가장 먼저 지정한 그룹별 합계와 총 합계를 구한다.

     

     

     

     

     

    CUBE 함수

    • 그룹별 산출한 결과값의 집계를 계산하는 함수
    • GROUP BY 절에서만 사용한다
    • 그룹으로 지정된 모든 그룹에 대한 합계와 총 합계를 구한다.

     

     

     

     

    GROUPING 함수

    • ROLLUP이나 CUBE에 의한 집계 산출물이 인자로 전달받은 컬럼 집합의 산출물이면 0을 반환하고,아니면 1을 반환하는 함수이다
    SELECT
           DEPT_CODE
         , JOB_CODE
         , SUM(SALARY)
         , CASE
             WHEN GROUPING(DEPT_CODE) = 0 AND GROUPING(JOB_CODE) = 1 THEN '부서별합계'
             WHEN GROUPING(DEPT_CODE) = 1 AND GROUPING(JOB_CODE) = 0 THEN '직급별합계'
             WHEN GROUPING(DEPT_CODE) = 0 AND GROUPING(JOB_CODE) = 0 THEN '그룹별합계'
             ELSE '총합계'
           END 구분
      FROM EMPLOYEE
     GROUP BY CUBE(DEPT_CODE, JOB_CODE)
     ORDER BY 1;

     

     

     

    GROUPING SETS함수

    • 그룹별로 처리된 여러 개의 SELECT문을 하나로 합친 결과를 원할 때 사용한다.
    • SET OPERATOR(집합연산자) 사용한 결과와 동일한 결과를 얻을 수 있다.
    SELECT
           DEPT_CODE
         , JOB_CODE
         , MANAGER_ID
         , FLOOR(AVG(SALARY))
      FROM EMPLOYEE
     GROUP BY GROUPING SETS((DEPT_CODE, JOB_CODE, MANAGER_ID)
                          , (DEPT_CODE, MANAGER_ID)
                          , (JOB_CODE, MANAGER_ID)
                           );

     

     

     

    728x90
    반응형

    'DataBase > Oracle' 카테고리의 다른 글

    SQL - JOIN  (0) 2022.01.20
    SQL - SET OPERATION  (0) 2022.01.20
    SQL - ORDER BY, GROUP BY, HAVING  (0) 2022.01.19
    SQL - 집계 함수  (0) 2022.01.19
    SQL - NULL 관련 함수, 선택 함수  (0) 2022.01.19

    댓글

Designed by Tistory.