데이터 구조가 아래와 같이 있다고 했을때
data1 | data2 | data3 | data4 |
A1 | B1 | C1 | D1 |
A1 | B1 | C1 | D2 |
A1 | B1 | C1 | D2 |
A1 | B1 | C1 | D3 |
A1 | B1 | C2 | D3 |
A1 | B1 | C2 | D4 |
A1 | B1 | C2 | D4 |
A1 | B1 | C2 | D5 |
A1 | B1 | C2 | D5 |
A1 | B2 | C3 | D5 |
A1 | B2 | C3 | D5 |
A1 | B2 | C4 | D5 |
A2 | B3 | C1 | D6 |
A2 | B3 | C2 | D7 |
A2 | B4 | C2 | D7 |
A2 | B4 | C3 | D8 |
이런형태로 데이터가 나오게 쿼리를 짜려고 합니다.
열심히 쿼리를 작성하고 있는데 원하는 결과값이 안 나옵니다. ㅠㅠ
고수님들 도움 부탁드립니다
대분류 | 카운트수 | 중분류 | 카운트수 | 소분류 | 카운트수 | 세부분류 | 카운트수 |
A1 | 12 | B1 | 9 | C1 | 4 | D1 | 1 |
A1 | 12 | B1 | 9 | C1 | 4 | D2 | 2 |
A1 | 12 | B1 | 9 | C1 | 4 | D3 | 1 |
A1 | 12 | B1 | 9 | C2 | 5 | D3 | 1 |
A1 | 12 | B1 | 9 | C2 | 5 | D4 | 2 |
A1 | 12 | B1 | 9 | C2 | 5 | D5 | 2 |
A1 | 12 | B2 | 3 | C3 | 2 | D5 | 2 |
A1 | 12 | B2 | 3 | C4 | 1 | D5 | 1 |
A2 | 4 | B3 | 2 | C1 | 1 | D6 | 1 |
A2 | 4 | B3 | 2 | C2 | 1 | D7 | 1 |
A2 | 4 | B4 | 2 | C2 | 1 | D7 | 1 |
A2 | 4 | B4 | 2 | C3 | 1 | D8 | 1 |
WITH t AS ( SELECT 'A1' gbn1, 'B1' gbn2, 'C1' gbn3, 'D1' gbn4 FROM dual UNION ALL SELECT 'A1', 'B1', 'C1', 'D2' FROM dual UNION ALL SELECT 'A1', 'B1', 'C1', 'D2' FROM dual UNION ALL SELECT 'A1', 'B1', 'C1', 'D3' FROM dual UNION ALL SELECT 'A1', 'B1', 'C2', 'D3' FROM dual UNION ALL SELECT 'A1', 'B1', 'C2', 'D4' FROM dual UNION ALL SELECT 'A1', 'B1', 'C2', 'D4' FROM dual UNION ALL SELECT 'A1', 'B1', 'C2', 'D5' FROM dual UNION ALL SELECT 'A1', 'B1', 'C2', 'D5' FROM dual UNION ALL SELECT 'A1', 'B2', 'C3', 'D5' FROM dual UNION ALL SELECT 'A1', 'B2', 'C3', 'D5' FROM dual UNION ALL SELECT 'A1', 'B2', 'C4', 'D5' FROM dual UNION ALL SELECT 'A2', 'B3', 'C1', 'D6' FROM dual UNION ALL SELECT 'A2', 'B3', 'C2', 'D7' FROM dual UNION ALL SELECT 'A2', 'B4', 'C2', 'D7' FROM dual UNION ALL SELECT 'A2', 'B4', 'C3', 'D8' FROM dual ) SELECT gbn1 , SUM(COUNT(*)) OVER(PARTITION BY gbn1) cnt1 , gbn2 , SUM(COUNT(*)) OVER(PARTITION BY gbn1, gbn2) cnt2 , gbn3 , SUM(COUNT(*)) OVER(PARTITION BY gbn1, gbn2, gbn3) cnt3 , gbn4 , COUNT(*) cnt4 FROM t GROUP BY gbn1, gbn2, gbn3, gbn4 ORDER BY gbn1, gbn2, gbn3, gbn4 ;