ORACLE 8.1.5 이전 버전에서는 SUBTOTAL과 GRAND TOTAL을 구하기 위해 아래의 SQL과 같이 COPY_T를 이용하여 복제를 한 후 SUBTOTAL과 GRAND TOTAL을 구하는 방법을 사용하였다.
select /*+ ordered */
decode(no,1,dname,2,dname,'total'),
decode(no,1,job,2,'subtotal'),
decode(no,1,empno),
sum(sal)
from (
select /*+ ordered use_nl(emp dept) */
empno,ename,hiredate,dname,job,sal
from emp , dept
where dept.deptno = emp.deptno ) a,copy_t b
where no <= 3
group by decode(no,1,dname,2,dname,'Grand total'),
decode(no,1,job,2,'Subtotal'),
decode(no,1,empno)
그런데 ORACLE 8.1.5부터 ROLLUP과 CUBE가 지원되면서 SUBTOTAL과 GRAND TOTAL을 구하기가 훨씬 쉬워졌다.그런데 ROLLUP과 CUBE는 상위그룹으로만 집계를 하는데는 용이하지만 세부내역과 함께 SUB TOTAL과 GRAND TOTAL을 보고자 할 경우에는 약간의 문제가 생긴다. 다음은 이러한 경우에 ROLLUP을 이용하여 SUBTOTAL과 GRAND TOTAL을 구하고 세부내역을 나타내기 위한 사례이다.
SELECT DECODE(GROUPING(dname), 1, 'All Departments',dname) AS dname,
DECODE(GROUPING(job), 1, 'All Jobs', job) AS job,
DECODE(GROUPING(empno), 0, empno) AS empno,
SUM(sal)
FROM EMP, DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO
GROUP BY rollup( DNAME, JOB,empno)
having grouping(empno) = 0 or grouping(job) = 1 or grouping(dname) = 1
ROLLUP을 이용하면 데이터 복제에 대한 부담과 GROUP BY에 대한 부담이 줄어들어 대상 건수가 많으면 많을수록 효과적이다.
* e-abap님에 의해서 게시물 이동되었습니다 (2007-04-19 14:31)
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
107 | 색상 정리 파일. [15] | 공백 | 2012.03.08 | 7974 |
106 | Internal Table 알아보기 [15] | 양키 | 2010.12.20 | 8001 |
105 | 요약파일1 [7] | 밤의화신 | 2013.09.11 | 8042 |
104 | Dynamic Internal Table [5] | sapjoy | 2007.02.11 | 8092 |
103 | BAPI_PO_CHANGE [1] | 노름마치 | 2009.09.03 | 8148 |
102 | <img src=b.gif>계속 남아있는 Debugger창 없에기(New Debugger)[추천:e-abap][추천:보나][추천:버미!] [14] | 해처리 | 2011.01.07 | 8170 |
101 | Number Range Object 변경/삭제 [4] | MadMax | 2010.12.07 | 8175 |
100 | Breakpoints 알아보기 [4] | 양키 | 2010.12.14 | 8176 |
99 | 전기기간 및 회계기간 오픈(MMPV, ob52) [4] | sapjoy | 2014.02.20 | 8235 |
98 | <img src=d.gif>테이블 Lock & UnLock function[추천:e-abap] [1] | 양키 | 2011.01.18 | 8270 |
97 | Area 메뉴 일괄 다운로드 하기 [5] | 고담 | 2011.06.15 | 8277 |
96 | ABAP에서 웹브라우져 호출 | 홍성현 | 2007.08.09 | 8331 |
95 | SELECTION-SCREEN [4] | sapjoy | 2007.01.23 | 8348 |
94 | ABAP 교육 [13] | 밤의화신 | 2013.09.11 | 8363 |
93 | 바피사용이유 [18] | 꿀단지 | 2011.10.11 | 8390 |
92 | SCN에서 인기있는 Tutorial강좌들 입니다. [1] | 양키 | 2013.08.12 | 8422 |
91 | SAP Factory Calendar | sapjoy | 2006.12.12 | 8493 |
90 | ABAP 교육 [13] | 밤의화신 | 2013.09.11 | 8495 |
89 | ABAP 교육 [32] | 밤의화신 | 2013.09.11 | 8497 |
88 | 시분초를 가져오는 구문 [8] | 양키 | 2011.05.26 | 8559 |