2.5. GROUPING SETS

2019. 4. 24. 15:18 Database/Oracle SQL2

GROUPING SETS

  • - GROUPING SETS 함수는 GROUP BY의 확장된 형태로 하나의 GROUP BY절에 여러개의 그룹 조건을 기술할 수 있다.
  • - GROUPING SETS 함수의 결과는 각 그룹 조건에 대해 별도로 GROUP BY한 결과를 UNION ALL한 결과와 동일하다.
  • - GROUPING SETS 함수를 사용하면 UNION ALL등을 사용하여 복잡하게 SQL문장을 작성했던 것을 간단하게 한 문장으로 해결 할 수 있다.

아래는 GROUPING SETS함수와 GROUP BY, UNION ALL을 이용하여 동일한 결과를 출력하는 예제이다.

--  GROUPING SETS 예제
SELECT deptno, job, SUM(sal)
 FROM emp
 GROUP BY GROUPING SETS(deptno, job);
 
 
-- GROUP BY와 UNION ALL을 이용한 예제
SELECT NULL deptno,  job, SUM(sal)
  FROM emp
 GROUP BY job
 UNION ALL
SELECT deptno, NULL job, SUM(sal)
  FROM emp
 GROUP BY deptno;
 
 
-- 조회결과
   DEPTNO JOB                  SUM(SAL)
--------- ------------------ ----------
          CLERK                    4150
          SALESMAN                 5600
          PRESIDENT                5000
          MANAGER                  8275
          ANALYST                  6000
       30                          9400
       20                         10875
       10                          8750


출처 : http://www.gurubee.net/lecture/2680

'Database > Oracle SQL2' 카테고리의 다른 글

4.1. Unconditional INSERT ALL  (0) 2019.04.25
3.3. 계층구조 쿼리의 응용  (0) 2019.04.24
3.2. 계층구조 쿼리의 활용  (0) 2019.04.24
3.1. 계층구조 쿼리(Hierarchical Queries)란?  (0) 2019.04.24
2.4. Cube  (0) 2019.04.24
2.3. Rollup 결과 행 구분  (0) 2019.04.24
2.2. Rollup 예제  (0) 2019.04.24
2.1. Rollup  (0) 2019.04.24