결과표만 올리셨네요?
원본 대비 결과표를 올려주셔야죠.
합계는 ROLLUP 을 이용하면 됩니다.
WITH t AS ( SELECT 'A' gb, 1 cd FROM dual UNION ALL SELECT 'A', 1 FROM dual UNION ALL SELECT 'A', 2 FROM dual UNION ALL SELECT 'A', 3 FROM dual UNION ALL SELECT 'A', 3 FROM dual UNION ALL SELECT 'B', 1 FROM dual UNION ALL SELECT 'B', 1 FROM dual UNION ALL SELECT 'B', 1 FROM dual UNION ALL SELECT 'B', 2 FROM dual UNION ALL SELECT 'B', 2 FROM dual UNION ALL SELECT 'B', 3 FROM dual UNION ALL SELECT 'C', 1 FROM dual UNION ALL SELECT 'C', 1 FROM dual UNION ALL SELECT 'C', 2 FROM dual UNION ALL SELECT 'C', 3 FROM dual ) SELECT NVL(gb, 'TOT') , COUNT(DECODE(cd, 1, 1)) cnt_1 , COUNT(DECODE(cd, 2, 1)) cnt_2 , COUNT(DECODE(cd, 3, 1)) cnt_3 FROM t a GROUP BY ROLLUP(gb) ORDER BY a.gb NULLS FIRST ;