통계를 내려고 하는데.. 너무 어렵네요 ㅠㅠ
| YEAR | TMP1 | TMP2 | GUBUN |
| 2015 | 5 | 0 | B |
| 2015 | 0 | 0 | S |
| 2016 | 1 | 46.0 | B |
| 2016 | 1 | 7.7 | S |
| 2016 | 1 | 12.3 | S |
| 2016 | 1 | 8.2 | B |
| 2017 | 0 | 0 | S |
| 2017 | 1 | 21.7 | B |
| 2020 | 2 | 0 | B |
| 2020 | 1 | 7.4 | S |
| 2020 | 0 | 0 | S |
| 2020 | 1 | 8.6 | B |
이런식으로 데이터가 들어 있을때
| 년도 | S | B | TOTAL | |||
| TMP1 | TMP2 | TMP1 | TMP2 | TMP1 | TMP2 | |
| 2015 | 0 | 0 | 5 | 0 | 5 | 0 |
| 2016 | 1 | 12.3 | 1 | 46.0 | 2 | 58.3 |
| 2016 | 1 | 7.7 | 1 | 8.2 | 2 | 15.9 |
| 2017 | 0 | 0 | 1 | 21.7 | 1 | 21.7 |
| 2020 | 0 | 0 | 1 | 7.4 | 1 | 7.4 |
| 2020 | 0 | 0 | 1 | 8.6 | 1 | 8.6 |
| TOTAL | 2 | 20.0 | 10 | 91.9 | 12 | 636.6 |
이렇게 출력하고 싶은데 짧은 지식으론 이렇게 출력이 안됩니다.. ㅠㅠ
| S | B | TOTAL | ||||
| year | tmp1 | tmp2 | tmp1 | tmp2 | tmp1 | tmp2 |
| ... | ||||||
| 2015 | 0 | 0 | 0 | 0 | 0 | 0 |
| 2015 | 0 | 0 | 5 | 0 | 5 | 0 |
| 2016 | 1 | 12.3 | 0 | 0 | 1 | 12.3 |
| 2016 | 1 | 7.7 | 0 | 0 | 1 | 7,7 |
| 2016 | 0 | 0 | 1 | 46.0 | 1 | 46 |
| 2016 | 0 | 0 | 1 | 8.2 | 1 | 8.2 |
| ... | ||||||
계속 이렇게만 출력이 되네요..
제가 원하는건 아래처럼 연도별 값이 0이면 행을 합쳐서 보여주고 싶은데 잘안됩니다..
| 2016 | 1 | 12.3 | 1 | 46.0 | 2 | 58.3 |
| 2016 | 1 | 7.7 | 1 | 8.2 | 2 | 15.9 |
도움부탁드립니다!
WITH t AS
(
SELECT '2015' year, 5 tmp1, 0 tmp2, 'B' gubun FROM dual
UNION ALL SELECT '2015', 0, 0.0, 'S' FROM dual
UNION ALL SELECT '2016', 1, 46.0, 'B' FROM dual
UNION ALL SELECT '2016', 1, 7.7, 'S' FROM dual
UNION ALL SELECT '2016', 1, 12.3, 'S' FROM dual
UNION ALL SELECT '2016', 1, 8.2, 'B' FROM dual
UNION ALL SELECT '2017', 0, 0.0, 'S' FROM dual
UNION ALL SELECT '2017', 1, 21.7, 'B' FROM dual
UNION ALL SELECT '2020', 2, 0.0, 'B' FROM dual
UNION ALL SELECT '2020', 1, 7.4, 'S' FROM dual
UNION ALL SELECT '2020', 0, 0.0, 'S' FROM dual
UNION ALL SELECT '2020', 1, 8.6, 'B' FROM dual
)
SELECT NVL(year, 'TOTAL') year
, SUM(DECODE(gubun, 'S', tmp1)) tmp1_s
, SUM(DECODE(gubun, 'S', tmp2)) tmp2_s
, SUM(DECODE(gubun, 'B', tmp1)) tmp1_b
, SUM(DECODE(gubun, 'B', tmp2)) tmp2_b
, SUM(tmp1) tmp1
, SUM(tmp2) tmp2
FROM (SELECT year, tmp1, tmp2, gubun
, ROW_NUMBER() OVER(PARTITION BY year, gubun ORDER BY 0) rn
FROM t
)
GROUP BY ROLLUP((year, rn))
;
답변 채택 기능을 이제 알았어요 ^^;;
늦었지만 살포시 채택 클릭하였습니다~!
와.. 정말 감사합니다.
통계 내는게 제일 어려운거 같아요..ㅠㅠ
이틀동안 이리저리 해보다가
안되면 테이블 구조를 바꿔야 하나;; 까지 생각을 했었는데
정말 큰 도움 되었습니다. 감사합니다!