아래 형식으로 쿼리를 뽑고 싶은 데 소계 랑 합계 부분을 어떻게 해야 하는지 알려주세요 기준은 장비입니다.
답변 부탁드립니다.
지역 | 장비 | SCU1 | SCU2 | PIU1 | PIU2 | PIU3 | PIU4 | PIU5 | PIU6 |
서울 | A#1 | GIB901 | GIB901 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 |
서울 | A#2 | GIB901 | GIB901 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 |
서울 | A#3 | GIB901 | GIB901 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 |
소계 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
부산 | A#1 | GIB901 | GIB901 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 |
부산 | A#2 | GIB901 | GIB901 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 |
부산 | A#3 | GIB901 | GIB901 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 | GPB614 |
소계 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
합계 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 |
음, 소계와 합계의 계산 기준이 없어 애매하네요. (중복이라든지)
다소 지저분하지만 아래 SQL 참고하셔서 원하시는 조건에 맞게 수정하시면 될 것 같습니다.
SELECT "지역", "장비", "SCU1" -- , ... 나머지 ... FROM ( SELECT DECODE(GROUPING_ID("지역"), 0, "지역") SEQ, DECODE(GROUPING_ID("지역", "장비"), 0, "지역", 1, '소계', 3, '합계') "지역", DECODE(GROUPING_ID("지역", "장비"), 0, "장비", COUNT(DISTINCT "지역" || "장비")) "장비", DECODE(GROUPING_ID("지역", "장비"), 0, "SCU1", COUNT(DISTINCT "지역" || "장비")) "SCU1" -- , ... 나머지 ... -- FROM 테이블 GROUP BY GROUPING SETS(("지역", "장비", "SCU1", "SCU2", "PIU1", "PIU2", "PIU3", "PIU4", "PIU5", "PIU6"), ("지역"), ()) ) ORDER BY SEQ DESC NULLS LAST, "지역", "장비"