프로그래밍/Oracle
[Oracle] 데이터 분석 함수 4 - 집계 결과 출력
eunki
2022. 5. 31. 17:32
728x90
데이터 분석 함수
- rollup : 전체 집계를 아래쪽에 출력
- cube : 전체 집계를 위쪽에 출력
- grouping sets : 원하는 집계 결과를 선택해서 출력
예제 1. 직업, 직업 별 토탈 월급을 출력하는데, 전체 집계를 아래쪽에 출력
select job, sum(sal)
from emp
group by rollup(job);
예제 2. 나이, 나이 별 인원 수를 출력하는데, 맨 밑에 전체 인원 수를 출력
select nvl(to_char(age), '전체인원수:'), count(*)
from emp15
group by rollup(age);
예제 3. 부서 번호, 직업과 부서 번호 별, 직업 별 토탈 월급을 출력
select deptno, job, sum(sal)
from emp
group by rollup(deptno, job)
order by 1;
rollup 함수 안의 (컬럼의 개수 + 1)개 만큼 그룹핑된 결과가 나온다.
- deptno, job : 부서 번호 별, 직업 별 토탈 월급
- deptno : 부서 번호 별 토탈 월급
- 전체 : 전체 토탈 월급
예제 4. 직업, 직업 별 토탈 월급을 출력하는데, 전체 토탈 월급을 맨 위쪽에 출력
select job, sum(sal)
from emp
group by cube(job);
예제 5. 부서 번호, 부서 번호 별, 전체 토탈 월급을 출력
select deptno, sum(sal)
from emp
group by grouping sets((deptno), ());
grouping sets (그룹핑 할 컬럼 기술)
grouping sets((deptno), ()) : 부서 번호 별, 전체 토탈 월급
grouping sets((deptno)) : 부서 번호 별 토탈 월급
예제 6. 예제 3을 grouping sets를 이용하여 출력
select deptno, job, sum(sal)
from emp
group by grouping sets((deptno, job), (deptno), ())
order by 1;
728x90