컴퓨터 공부/Advanced Database

[5월 28일 2교시] 그룹 함수 2

려리군 2009. 5. 28. 14:50

※ group by의 열의 순서에 따라 결과가 달라질 수 있다.


ROLLUP, CUBE 연산자

subtotal을 구하는 데 사용한다.

rollup, cube 연산자를 사용하여 group by 구문 안에서 표현식에 대해 부분합계와 합계를 전달한다.

rollup : 각 그룹에 대한 합계를 한 줄로 리턴. 부분합계 값을 만들기 위해 사용한다.

cube 

 - 각 열에 대한 표현의 모든 가능한 조합에 대한 값을 기본으로 선택한 row.

 - 각 그룹에 대한 합계 정보에 대한 row를 리턴한다.

 - 교차 분석 값을 만들기 위해 사용한다.


GROUPING 함수

rollup과 cube를 포함하는 select구문에서만 적용될 수 있다.

grouping(표현식)

해당 줄에서 표현식의 값이 합계를 표현하는 null이면 1을 리턴. 아니면 0을 리턴.


※ column 열이름 format a10 : 열이름에 대해 10칸으로 그 열을 표시한다. (sqlplus명령)


GROUPING SETS

GROUP BY절에서 GROUPING SETS을 사용하여 여러개의 그룹화를 정의한다.

예시)

select deptno, job, sum(sal)

from emp

group by

grouping sets((deptno, job),(job),())

order by 1,2

결과 : ① deptno, job에 대한 그룹핑 결과, ② job에 대한 그룹핑 결과, ③ 전체에 대한 그룹핑 결과를 합쳐서 출력한다.


※ 합집합 연산(UNION)을 할 때는 서로 select 절의 열의 수가 같아야 한다.