database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39547 게시물 읽기
No. 39547
rollup에 대해 문의 드립니다.
작성자
안양
작성일
2012-07-19 17:11ⓒ
2012-07-19 17:28ⓜ
조회수
5,886

안녕하세요 급하게 문의 드립니다. 

다음 sql 문장을 가지고  표처럼 중간에 rollup을 이용해서  단수, 복수소계 를 끼워넣을수 있는지 문의드립니다. 

 

 select '가정용' 구분,'HD프리미엄형' 상품구분,'단수' 세부구분,17810 작년유료,0 작년무료,17607 현재유료,0 현재무료 from dual union all 

 select '가정용','HD프리미엄형','복수',2060,0,2066,0 from dual union all 

 select '가정용','고급형','단수',502,0,467,0 from dual union all 

 select '가정용','고급형','복수',169,0,126,0 from dual union all 

 select '가정용','기본형','단수',6887,0,6406,0 from dual union all 

 select '가정용','기본형','복수',887,0,859,0 from dual union all 

 select '가정용','HD패밀리형','단수',7256,0,8055,0 from dual union all 

 select '가정용','HD패밀리형','복수',725,0,925,0 from dual union all 

 select '가정용','실속형','단수',3630,0,3878,0 from dual union all 

 select '가정용','실속형','복수',844,0,1191,0 from dual union all 

 select '사업자용','HD 프리미엄형','단수',4029,0,3990,0 from dual union all 

 select '사업자용','HD 프리미엄형','복수',5956,0,6191,0 from dual union all 

 select '사업자용','고급형','단수',123,0,113,0 from dual union all 

 select '사업자용','고급형','복수',139,0,168,0 from dual union all 

 select '사업자용','기본형','단수',2305,0,2178,0 from dual union all 

 select '사업자용','기본형','복수',1946,0,1897,0 from dual union all 

 select '사업자용','HD 패밀리형','단수',1231,0,1392,0 from dual union all 

 select '사업자용','HD 패밀리형','복수',427,0,482,0 from dual union all 

 select '사업자용','실속형','단수',744,0,812,0 from dual 

 

 

 


구분

상품명

작년

현재

유료

무료

유료

무료

가정용 ( )형 단수        
복수        
( )형 단수        
복수        
단수 소계        
복수 소계        
총 계        
사업자용 ( )형 단수        
복수        
( )형 단수        
복수        
단수 소계        
복수 소계        
총 계        
전체 단수 소계        
복수 소계        
총 계        

 

 

 

감사합니다.

이 글에 대한 댓글이 총 3건 있습니다.

WITH t AS
(
SELECT '가정용' 구분, 'HD프리미엄형' 상품구분, '단수' 세부구분, 17810 작년유료, 0 작년무료, 17607 현재유료, 0 현재무료 FROM dual
UNION ALL SELECT '가정용'  , 'HD프리미엄형', '복수', 2060, 0, 2066, 0 FROM dual
UNION ALL SELECT '가정용'  , '고급형'      , '단수',  502, 0,  467, 0 FROM dual
UNION ALL SELECT '가정용'  , '고급형'      , '복수',  169, 0,  126, 0 FROM dual
UNION ALL SELECT '가정용'  , '기본형'      , '단수', 6887, 0, 6406, 0 FROM dual
UNION ALL SELECT '가정용'  , '기본형'      , '복수',  887, 0,  859, 0 FROM dual
UNION ALL SELECT '가정용'  , 'HD패밀리형'  , '단수', 7256, 0, 8055, 0 FROM dual
UNION ALL SELECT '가정용'  , 'HD패밀리형'  , '복수',  725, 0,  925, 0 FROM dual
UNION ALL SELECT '가정용'  , '실속형'      , '단수', 3630, 0, 3878, 0 FROM dual
UNION ALL SELECT '가정용'  , '실속형'      , '복수',  844, 0, 1191, 0 FROM dual
UNION ALL SELECT '사업자용', 'HD프리미엄형', '단수', 4029, 0, 3990, 0 FROM dual
UNION ALL SELECT '사업자용', 'HD프리미엄형', '복수', 5956, 0, 6191, 0 FROM dual
UNION ALL SELECT '사업자용', '고급형'      , '단수',  123, 0,  113, 0 FROM dual
UNION ALL SELECT '사업자용', '고급형'      , '복수',  139, 0,  168, 0 FROM dual
UNION ALL SELECT '사업자용', '기본형'      , '단수', 2305, 0, 2178, 0 FROM dual
UNION ALL SELECT '사업자용', '기본형'      , '복수', 1946, 0, 1897, 0 FROM dual
UNION ALL SELECT '사업자용', 'HD패밀리형'  , '단수', 1231, 0, 1392, 0 FROM dual
UNION ALL SELECT '사업자용', 'HD패밀리형'  , '복수',  427, 0,  482, 0 FROM dual
UNION ALL SELECT '사업자용', '실속형'      , '단수',  744, 0,  812, 0 FROM dual
)
SELECT NVL(구분, '전체') 구분
     , NVL2(세부구분, NVL(상품구분, '소계'), '총계') 상품구분
     , 세부구분
     , SUM(작년유료) 작년유료
     , SUM(작년무료) 작년무료
     , SUM(현재유료) 현재유료
     , SUM(현재무료) 현재무료
  FROM t a
 GROUP BY GROUPING SETS ( ROLLUP(구분, 세부구분, 상품구분), (세부구분) )
 ORDER BY a.구분
     , DECODE(a.상품구분
       , 'HD프리미엄형', 1
       , '고급형'      , 2
       , '기본형'      , 3
       , 'HD패밀리형'  , 4
       , '실속형'      , 5
       )
     , a.세부구분
;

마농(manon94)님이 2012-07-20 09:54에 작성한 댓글입니다.

SELECT NVL(구분, '전체') 구분
     , NVL2(세부구분, NVL(상품구분, '소계'), '총계') 상품구분
     , 세부구분
     , SUM(작년유료) 작년유료
     , SUM(작년무료) 작년무료
     , SUM(현재유료) 현재유료
     , SUM(현재무료) 현재무료
     , GROUPING_ID(구분,상품구분,세부구분) GRP_ID
  FROM t a
 GROUP BY
 GROUPING SETS (
                (구분,상품구분,세부구분),
                (구분),
                (구분,세부구분),
                (세부구분),
                ()
               )
 ORDER BY a.구분,GRP_ID,상품구분,세부구분

sss님이 2012-07-20 10:32에 작성한 댓글입니다.
이 댓글은 2012-07-20 10:44에 마지막으로 수정되었습니다. Edit

우와 너무 너무  감사합니다.

역시 고수님들은 틀리시네요  

 

주말 잘 보내세요 .~~

안양님이 2012-07-20 14:20에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39550PL/SQL 살려주세요 ㅠㅠ [7]
햇살한조각
2012-07-20
6178
39549oracle 에서 mysql 의 memorydb 같은게 있나요? [3]
이철림
2012-07-20
5040
39548drop table에 관해 문의 드립니다. [2]
태경파
2012-07-20
4767
39547rollup에 대해 문의 드립니다. [3]
안양
2012-07-19
5886
39546오라클 시작일 종료일 받아와 주차구하기 [2]
오라초
2012-07-17
7661
39545Table access 순서와 table access path(방식)에 대해 질문 있습니다.^^
얄록
2012-07-17
4455
39543조회할때 한row에 추가로 3row를 더 넣고싶습니다. [1]
초보..
2012-07-16
4627
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다