데이타 칼럼명 nm val A1 1 A2 2 A3 3
B1 2 B3 3
C1 1 C2 3
--------------------------------
아래결과처럼 마지막에 총계가 나오지 않고 소계값중 가장큰값(max)값이 나오게 하고 싶은데 맘처럼 쉽지가 않네요..
(결과)
A A1 1 A A2 2 A A3 3 A소계 6
B B1 2 B B2 3 B소계 5
C CB1 1 C C2 3 C소계 4
max소계 6
WITH t AS ( SELECT 'A1' nm, 1 val FROM dual UNION ALL SELECT 'A2', 2 FROM dual UNION ALL SELECT 'A3', 3 FROM dual UNION ALL SELECT 'B1', 2 FROM dual UNION ALL SELECT 'B3', 3 FROM dual UNION ALL SELECT 'C1', 1 FROM dual UNION ALL SELECT 'C2', 3 FROM dual ) SELECT NVL(gb, '전체') gb , DECODE(GROUPING(gb), 1, 'MAX') || NVL(nm, '소계') nm , DECODE(GROUPING(gb), 0, SUM(val) , MAX(DECODE(GROUPING_ID(gb, nm), 1, SUM(val))) OVER() ) val FROM (SELECT SUBSTR(nm, 1, 1) gb, nm, val FROM t) GROUP BY ROLLUP(gb, nm) ;
마농님 감사합니다..
며칠째 고민하다가 올렸는데 이렇게 해결되다니 감사할따름입니다..^^