안녕하세요 오라클 SELECT 쿼리 작성시 질문이 있어 문의드립니다!
테이블 A 가 아래구성이라 할때
컬럼1 - 1월, 2월 ,3월
컬럼2 - 종류1, 종류2, 종류3
컬럼3 - 항목1, 항목2, 항목3
컬럼4 - 금액
데이터는 이런식으로 들어갑니다.
1월 | 종류1 | 항목1 | 1000 |
1월 | 종류1 | 항목2 | 1000 |
1월 | 종류1 | 항목3 | 2000 |
1월 | 종류2 | 항목1 | 1500 |
1월 | 종류2 | 항목2 | 1800 |
이하동일이구요.
이럴때 아래처럼 SELECT 해오는 방법이 있을까요??
1월 | 종류1 | 4000 |
1월 | 항목1 | 1000 |
1월 | 항목2 | 1000 |
1월 | 항목3 | 2000 |
1월 | 종류2 | 5300 |
1월 | 항목1 | 2000 |
1월 | 항목2 | 1500 |
1월 | 항목3 | 1800 |
WITH t AS ( SELECT '1월' 연월, '종류1' 종류, '항목1' 항목, 1000 금액 FROM dual UNION ALL SELECT '1월', '종류1', '항목2', 1000 FROM dual UNION ALL SELECT '1월', '종류1', '항목3', 2000 FROM dual UNION ALL SELECT '1월', '종류2', '항목1', 2000 FROM dual UNION ALL SELECT '1월', '종류2', '항목2', 1500 FROM dual UNION ALL SELECT '1월', '종류2', '항목3', 1800 FROM dual ) SELECT 연월 , NVL(항목, 종류) 구분 , SUM(금액) 금액 FROM t GROUP BY 연월, 종류, ROLLUP(항목) ORDER BY 연월, 종류, 항목 NULLS FIRST ;