ROLLUP 절 예
-- GROUP BY ROLLUP(a, b)
a+b => a 별 b의 소계 : GROUP BY a, b 의 결과
a => a 별 소계
전체 => 마지막에 한번
GROUP BY x, ROLLUP(a, b)
x+a+b
x+a
x
GROUP BY x, ROLLUP(a)
x+a
x
dept별 pos의 sal 소계, dept별소계, 마지막에 총계 출력
select dept, pos, sum(sal)
from emp
group by rollup(dept,pos)
order by dept,pos
-- rollup에 표현식이 2개 -> 합계 3개
-- dept별 pos의 sal 소계, dept별 소계 출력하며 마지막에 총계는 출력하지 않는다.
select dept, pos, sum(sal)
from emp
group by dept, rollup(pos)
order by dept,pos
-- 부서별 인원수 및 마지막에 전체 인원수 출력
-- dept 전체 인원수
select dept, count(*)
from emp
group by rollup(dept);
CUBE 절 사용 예시
dept별 pos의 sal 소계, dept별 소계, pos별 소계, 마지막에 총계 출력
select dept, pos, sum(sal)
from emp
group by cube(dept,pos)
order by dept,pos
------------------------------------------
-- dept 별 남자와 여자 인원수 및 dept 인원수,전체 인원수
-- dept 성별 인원
-- 개발부 여자 x
-- 개발부 남자 x
-- 개발부 x
select dept, decode(mod(substr(rrn,8,1),2),1, '남자','0','여자') 성별, count(*)전체인원수
from emp
group by rollup(dept, mod(substr(rrn,8,1),2))
order by dept;