통계쿼리좀 부탁드리겠습니다. 0 2 968

by K-ART [SQL Query] [2017.05.31 22:48:39]


테이블

---------------------------------------------------------------------------

A       가       나   100

A       가       나   200

A       가       다   300

B       다        가   200

B       가        가   300

-결과---------------------------------------------------------------------------------------

A       가       나   100

A       가       나   200

A       가       다   300

소계                   600

B       다        가   200

B       가        가   300

소계                    500

합계                    1100

-----------------------------------------------------------------------------

GROUP BY ROLLUP 로하면 안될꺼 같은데 어떻게 해야되나요?

 

 

 

 

by 우리집아찌 [2017.06.01 08:31:48]

gb   v1  v2 

a     가   나

.....

group by rollup ( gb , ( v1 , v2 ) )


by 마농 [2017.06.01 09:07:40]
WITH t AS
(
SELECT 'A' gb1, '가' gb2, '나' gb3, 100 v FROM dual
UNION ALL SELECT 'A', '가', '나', 200 FROM dual
UNION ALL SELECT 'A', '가', '다', 300 FROM dual
UNION ALL SELECT 'B', '다', '가', 200 FROM dual
UNION ALL SELECT 'B', '가', '가', 300 FROM dual
)
SELECT NVL(gb1, '합계') gb1
     , DECODE(GROUPING_id(gb1, gb2, gb3), 3, '소계', gb2) gb2
     , gb3
     , SUM(v) v
  FROM t
 GROUP BY ROLLUP(gb1, (gb2, gb3, ROWNUM))
 ORDER BY gb1, gb2, gb3, ROWNUM
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입