※ 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 절의 열의 수가 같아야 한다.
'컴퓨터 공부 > Advanced Database' 카테고리의 다른 글
[6월 1일 1교시] SQL Plus 명령 1 (0) | 2009.06.01 |
---|---|
[5월 28일 3교시] 서브쿼리 (0) | 2009.05.28 |
[5월 28일 1교시] 그룹 함수 1 (0) | 2009.05.28 |
[5월 27일 3교시] 조인 2 (0) | 2009.05.27 |
[5월 27일 2교시] 조인 1 (0) | 2009.05.27 |