
select job, sum(sal)
from emp
group by rollup(job);

select nvl(job,'전체토탈') as job, sum(sal)
from emp
group by rollup(job);
null값을 '전체토탈'로 바꿔줌

select nvl(to_char(deptno), '전체토탈:') as deptno, sum(sal)
from emp
group by rollup(deptno);
💡
deptno --> 숫자
'전체토탈:' --> 문자 이기 때문에
to_char(deptno)로 바꿔줘야됨

select nvl(to_char(deptno), '전체토탈:') as deptno,
to_char(sum(sal), '999,999') as 토탈월급
from emp
group by rollup(deptno);
select sum(decode(deptno, 10, sal, null)) "10",
sum(decode(deptno, 20, sal, null)) "20",
sum(decode(deptno, 30, sal, null)) "30"
from emp;
select job,
sum( decode(deptno, 10, sal, null) ) as "10",
sum( decode(deptno, 20, sal, null) ) as "20",
sum( decode(deptno, 30, sal, null) ) as "30"
from emp
group by job;

select job,
sum(decode(deptno, 10, sal, null)) "10",
sum(decode(deptno, 20, sal, null)) "20",
sum(decode(deptno, 30, sal, null)) "30",
sum(sal)
from emp
group by rollup(job);
select deptno, job, sum(sal)
from emp
group by deptno, job
order by deptno, job;
select deptno, job, sum(sal)
from emp
group by rollup(deptno, job)
order by deptno, job;
💡 rollup(deptno, job) 의 집계결과는?
1. deptno, job 별 토탈월급
2. deptno 별 토탈월급
3. 전체 토탈월급
10 CLERK 1300
10 MANAGER 2450
10 PRESIDENT 5000
10 부서토탈: 8750
20 ANALYST 6000
20 CLERK 1900
20 MANAGER 2975
20 부서토탈: 10875
30 CLERK 950
30 MANAGER 2850
30 SALESMAN 5600
30 부서토탈: 9400
전체토탈: 29025
select deptno, decode(deptno, 10, nvl(job, '부서토탈:'),
20, nvl(job, '부서토탈:'),
30, nvl(job, '부서토탈:'),
nvl(job, '전체토탈:')) as job, sum(sal)
from emp
group by rollup(deptno, job)
order by deptno, job;