Oracle DBA/SQL

053 : 데이터 분석 함수로 집계 결과 출력하기 2(CUBE)

Nuez 2023. 6. 29. 13:57
반응형

예제. 부서번호, 부서번호별 토탈 월급을 출력하는데 전체 토탈 월급을 맨 위에 출력하시오. 

SELECT deptno, SUM(sal)
FROM emp
GROUP BY CUBE(deptno);


문제 272. 부서번호, 부서 번호별 토탈 월급을 출력하는데 전체 토탈 월급이 아래와 같이 출력되게 하시오.

(오라클 메뉴얼 교재 연습문제의 난이도 중에 해당하는 문제)  

SELECT nvl(to_char(deptno),'전체:') AS deptno, SUM(sal)
FROM emp
GROUP BY CUBE(deptno);


문제 273. (복습문제) 부서번호, 직업, 부서번호별 직업별 토탈 월급을 출력하시오. 

SELECT deptno, job, SUM(sal)
FROM emp
GROUP BY deptno, job
ORDER BY deptno, job;


문제 274. 위의 결과를 다시 출력하는데 cube를 사용해서 출력하시오. 

SELECT deptno, job, SUM(sal)
FROM emp
GROUP BY CUBE(deptno, job);

집계 결과 종류 : 2 ^ n 

n : cube() 괄호 안의 컬럼 수 

 

집계 결과 : 2^2 = 4 가지 

1. (전체)

2. (deptno, job)

3. (deptno)

4. (job)

 

만약, cube ( deptno, mgr, job)이라면 ? 

 

집계 결과 : 2^3 = 8개

1.  (전체)

2. (deptno, mgr, job)

3. deptno, mgr

4. deptno, job

5. mgr, job

6. deptno

7. mgr

8. job