-- 초간단 답변
WITH COUNTRY ( country , mon1 , mon2 ) AS (
SELECT '한국' , 100 , 10 FROM DUAL
UNION ALL SELECT '일본' , 200 , 100 FROM DUAL
UNION ALL SELECT '미국' , 50 , 100 FROM DUAL
)
SELECT country , sum(mon1) , sum(mon2) FROM COUNTRY
GROUP BY ROLLUP ( country )
답변 감사합니다.. 덕분에 해결했네요.. ㅎㅎ
그런데 한가지 더 궁금한게 앞에 country뿐만 아니라 다른 제목 컬럼 예를 들어
country area mon1 mon2
한국 서울 100 200
일본 도쿄 10 100
.
.
이런식으로 있을경우에 전체합계가 안되고 좀 부분적으로 되는거같던데 이름컬럼이 다수일때도
전체합계를 낼수 있나요?
-- 초간단 답변
WITH COUNTRY ( country , city, mon1 , mon2 ) AS (
SELECT '한국', '서울' , 100 , 10 FROM DUAL
UNION ALL SELECT '한국', '부산' , 200 , 100 FROM DUAL
UNION ALL SELECT '일본', '도쿄' , 200 , 100 FROM DUAL
UNION ALL SELECT '미국', '뉴욕' , 50 , 100 FROM DUAL
)
--부분및전체합
SELECT country
, decode(1, grouping(country), '전체합계', grouping(city), '부분합계', city) city
, sum(mon1)
, sum(mon2)
FROM COUNTRY
GROUP BY ROLLUP ( country, city )
;
--전체합만
SELECT country
, decode(1, grouping(country), '전체합계', grouping(city), '부분합계', city) city
, sum(mon1)
, sum(mon2)
FROM COUNTRY
GROUP BY GROUPING SETS ((country, city),())
;
답변 감사합니다.. 덕분에 많이 배우네요..
-- 위에 채용근님이 써주셨었는데 ㅡㅡ ...
WITH COUNTRY ( country , area , mon1 , mon2 ) AS (
SELECT '한국' , 'SEOUL' , 100 , 10 FROM DUAL
UNION ALL SELECT '한국' , 'BUSAN' , 100 , 10 FROM DUAL
UNION ALL SELECT '미국' ,'NY' ,50 , 100 FROM DUAL
UNION ALL SELECT '미국' ,'LA' ,50 , 100 FROM DUAL
)
SELECT country , area , SUM(mon1) , SUM(mon2) FROM COUNTRY
GROUP BY ROLLUP (( country ,area ))
오.... 감사합니다.. 해도 안되길래 방법이 없나 하고 계속 고민했었는데 덕분에 해결했습니다.. 감사합니다.