집계결과가 맨 아래 : rollup
집계결과가 맨 위에 : cube
CUBE = 결과값이 맨위출력
예제 :
select nvl(job, '전체토탈'), sum(sal)
from emp
group by cube(job);
문제 : 위의 결과에서 NULL 값에 전체 토탈이라고 출력되게 하시오
select nvl(to_char(deptno), '전체토탈')as DEPTNO,
sum(sal)
from emp
group by cube(deptno);
문제 245 : 직업, 직업별 인원수를 출력하는데 아래와 같이 맨 위에 전체토탈이 출력되게하시오
select nvl(job, '전체토탈')as JOB, count(*)
from emp
group by cube(job);
→ 이미 JOB 이 문자이므로 NVL 함수 쓸때 TO_CHAR사용할 필요없다.
CUBE 함수에 컬럼을 여러개 사용할때
select deptno, job, sum(sal)
from emp
group by cube(deptno, job);
→ 그룹핑된 결과가 4가지 나온다.
- deptno, job
- deptno
- 전체
- job ←— cube 는 rollup과 다르게 한가지가 더 출력 된다.
rollup과는 다르게 한가지 더 출력 되는 그룹핑된 컬럼은 제일 처음에 지웠던 컬럼입니다.
'Oracle > SQL' 카테고리의 다른 글
SQL 데이터 분석함수 - Row_number 출력결과 넘버링 (0) | 2021.11.22 |
---|---|
SQL 데이터 분석함수 - 집계결과 출력 Grouping sets (0) | 2021.11.22 |
SQL 데이터 분석함수 - 집계결과 출력 Rollup (0) | 2021.11.19 |
SQL 데이터 분석함수 - 원형 비율출력 Ratio_to_report (0) | 2021.11.19 |
SQL 데이터 분석함수 - 누적데이터 Sum () over () (0) | 2021.11.19 |