group by 의 결과에서 다시 조건문을 줘서 합을 구해야합니다.
데이터 건수가 많아서 union all을 써서 결과를 내는게 좀 부담스럽네요.
아래 쿼리가 적당한지 좀 봐주세요. ^^;
SELECT 'A' as div, sum(cnt_2008), sum(cnt_2009)
FROM
(
SELECT
a.cappart,
COUNT(DECODE(substr(a.conid,1,4), '2008', a.perid)) cnt_2008,
COUNT(DECODE(substr(a.conid,1,4), '2009', a.perid)) cnt_2009
FROM
sbctct a
GROUP BY
a.cappart
)where cappart in (1,20)
union all
SELECT 'B' as div, sum(cnt_2008), sum(cnt_2009)
FROM
(
SELECT
a.cappart,
COUNT(DECODE(substr(a.conid,1,4), '2008', a.perid)) cnt_2008,
COUNT(DECODE(substr(a.conid,1,4), '2009', a.perid)) cnt_2009
FROM
sbctct a
GROUP BY
a.cappart
)where cappart in (12, 5, 3)