SELECT ES.A,
ES.B,
ES.C,
ES.D,
SUM(A1) AS A1
FROM EX_SOURCE ES
GROUP BY ROLLUP(ES.A, ES.B, ES.C, ES.D);
ROLLUP 소스를 위와 같이 작성한다면 결과가 아래와 같이 나옵니다.
A | B | C | D | A1 |
1 | A30 | 037 | V1 | 100 |
1 | A30 | 037 | V2 | 200 |
1 | A30 | 037 | 300 | |
1 | A30 | 039 | V1 | 300 |
1 | A30 | 039 | V2 | 400 |
1 | A30 | 039 | 700 | |
1 | A30 | 1000 | ||
1 |
1000 |
제가 원하는 소계도 위에 나와야 합니다... 같이 구현하려면 이건 어떻게 GROUP BY, ROLLUP 을 해야 구현되나요? 몹시 고민됩니다. 아무리 바꿔도 ..
1 | A30 | V1 | 400 | |
1 | A30 | V2 | 600 |
WITH EX_SOURCE (A, B, C, D, A1) AS ( SELECT 1, 'A30', '037', 'V1', 100 FROM DUAL UNION ALL SELECT 1, 'A30', '037', 'V2', 200 FROM DUAL UNION ALL SELECT 1, 'A30', '039', 'V1', 300 FROM DUAL UNION ALL SELECT 1, 'A30', '039', 'V2', 400 FROM DUAL ) SELECT ES.A, ES.B, ES.C, ES.D, SUM(A1) AS A1 FROM EX_SOURCE ES GROUP BY ROLLUP((ES.A, ES.B, ES.C)), ROLLUP(ES.D) ORDER BY A,B,C,D ;