[데이터 베이스]15.rollup

손영민's avatar
Mar 09, 2025
[데이터 베이스]15.rollup
group by를 잘 이해하자.
ROLLUP그룹별 소계를 자동으로 계산하는 기능입니다.
즉, GROUP BY와 함께 사용하면 부분 합계(소계)와 전체 합계를 자동으로 추가할 수 있습니다.
job, deptno로 그룹을 짓고, job별 소계 구하고, 전체 총계 구한다.
 
 
 
notion image
 
 
-- 6. rollup (집계 함수) -- 같은 job에서 같은 부서 끼리 select job, deptno, avg(sal) sal, count(*) cnt from emp where job = 'clerk' group by job, deptno; select 'cleak', null , 1017 , 3; select job from emp where job = 'clerk' group by job; select job, null from emp where job = 'clerk' group by job; select null; -- select '1017'; select avg(sal) from ( select avg(sal) sal from emp where job = 'clerk' group by job, deptno ) e; -- select job, null, avg(sal), count(*) cnt from emp where job = 'clerk' group by job; select job, null, avg(sal), count(*) cnt from emp where job = 'ANALYST'; select job, null, avg(sal), count(*) cnt from emp where job = 'MANAGER'; select job, null, avg(sal), count(*) cnt from emp where job = 'PRESIDENT'; select job, null, avg(sal), count(*) cnt from emp where job = 'SALESMAN'; select null, null, avg(sal), count(*) cnt from emp; select job, deptno, avg(sal), count(*) cnt from emp group by job, deptno with rollup; ----------------------------------------------- -- job, deptno 그룹화 select job, deptno, avg(sal) avg_sal, count(*) cnt from emp where job = 'CLERK' group by job, deptno; -- 소계 select job, null 'deptno', avg(sal) avg_sal, count(*) 'cnt' from emp where job = 'CLERK' group by job; -- 총계 select null, null, avg(sal) avg_sal, count(*) from emp; -- rollup select job, deptno, avg(sal), count(*) cnt from emp group by job, deptno with rollup;
 
notion image
Share article

sson17