Skip to content

SQL 그룹 함수 #
Find similar titles

그룹 함수(GROUP FUNCTION) #

ROLLUP 함수 #

  • ROLLUP에 지정된 Grouping Columns의 List는 Subtotal을 생성하기 위해 사용되어지며, Grouping Columns의 수를 N이라고 했을 때 N+1 Level의 Subtotal이 생성된다.
  • ROLLUP의 인수는 계층 구조이므로 인수 순서가 바뀌면 수행 결과도 바뀌게 되므로 인수의 순서에도 주의해야 한다.
  • ROLLUP은 선택한 열에서 값의 계층에 대한 집계가 포함된 결과 집합을 생성한다.

예제 #

SELECT DNAME, JOB
     , COUNT(*) AS "Total Empl"
     , SUM(SAL) AS "Total Sal"
FROM   EMP, DEPT
WHERE  DEPT.DEPTNO = EMP.DEPTNO
GROUP  BY ROLLUP (DNAME, JOB);
;

CUBE 함수 #

SELECT CASE GROUPING(DNAME) WHEN 1 THEN 'All Departments' ELSE DNAME END AS DNAME,
       CASE GROUPING(JOB)   WHEN 1 THEN 'All Jobs' ELSE JOB END AS JOB, COUNT(*) "Total Empl",
       SUM(SAL) "Total Sal"
FROM   EMP, DEPT
WHERE  DEPT.DEPTNO = EMP.DEPTNO
GROUP  BY CUBE (DNAME, JOB)
;

GROUPING SETS 함수 #

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

예제 #

SELECT DEPTNO, JOB, SUM(SAL)
FROM   EMP
GROUP  BY GROUPING SETS(DEPTNO, JOB)
;

참고문헌 #

  • 이화식,『대용량 데이터베이스솔루션 1』, 서울:(주)엔코아, 1996
0.0.1_20140628_0