2017년 4월 8일 토요일

[구로IT학원,오라클교육,SQL,튜닝강좌] GROUPING SETS 함수

GROUPING SETS  

이 함수는 오라클 이전 버전에서 UNION ALL등을 사용하여 복잡하게 SQL문장을 만드는 부분을 해소 할 수 있도록 한 GROUP BY의 확장이다. 실습을 통해 이해하자. 

à 아래는 기존 함수인 GROUP BY를 이용하여 부서별 직업별, 직업별, 관리자별 각각 그룹핑을 한 후 둘을 합친 결과를 얻는 예제이다. 
SQL> SELECT deptno, job, NULL, sum(sal) 
  2  FROM emp 
  3  GROUP BY deptno, job 
  4  UNION ALL 
  5  SELECT NULL, job, mgr, sum(sal) 
  6  FROM emp 
  7  GROUP BY job, mgr; 

    DEPTNO JOB            NULL  SUM(SAL) 
---------- --------- ---------- ---------- 
        10 CLERK                      1300 
        10 MANAGER                    2450 
        10 SALESMAN                  1250 
        10 PRESIDENT 
        20 CLERK                      1900 
        20 ANALYST                    6000 
        20 MANAGER                    2975 
        30 CLERK                      950 
        30 MANAGER                    2850 
        30 SALESMAN                  4350 
          CLERK          7698        950 

    DEPTNO JOB            NULL  SUM(SAL) 
---------- --------- ---------- ---------- 
          CLERK          7782      1300 
          CLERK          7788      1100 
          CLERK          7902        800 
          ANALYST        7566      6000 
          MANAGER        7839      8275 
          SALESMAN        7698      5600 
PRESIDENT 

à 아래는 위의 예문과 같은 결과를 내기 위해 GROUPING SET을 이용한 사례 이다. 
SQL> SELECT deptno, job, mgr, sum(sal) 
  2        FROM emp 
  3        GROUP BY GROUPING SETS ((deptno, job), (job, mgr)); 

    DEPTNO JOB              MGR  SUM(SAL) 
---------- --------- ---------- ---------- 
        10 CLERK                      1300 
        10 MANAGER                    2450 
        10 SALESMAN                  1250 
        10 PRESIDENT 
        20 CLERK                      1900 
        20 ANALYST                    6000 
        20 MANAGER                    2975 
        30 CLERK                      950 
        30 MANAGER                    2850 
        30 SALESMAN                  4350 
          CLERK          7698        950 

    DEPTNO JOB              MGR  SUM(SAL) 
---------- --------- ---------- ---------- 
          CLERK          7782      1300 
          CLERK          7788      1100 
          CLERK          7902        800 
          ANALYST        7566      6000 
          MANAGER        7839      8275 
          SALESMAN        7698      5600 
          PRESIDENT

댓글 없음:

댓글 쓰기