|
진료과 | 구분 | 결과수치 |
감염내과 | A | 36 |
감염내과 | B | 12 |
내과 | A | 20 |
내과 | B | 2 |
류마티스내과 | A | 4 |
류마티스내과 | B | 0 |
마취의학과 | A | 6 |
마취의학과 | B | 2 |
비뇨기과 | A | 4 |
비뇨기과 | B | 2 |
WITH t AS ( SELECT '감염내과' dept, 'A' gb, 36 v FROM dual UNION ALL SELECT '감염내과' , 'B', 12 FROM dual UNION ALL SELECT '내과' , 'A', 20 FROM dual UNION ALL SELECT '내과' , 'B', 2 FROM dual UNION ALL SELECT '류마티스내과', 'A', 4 FROM dual UNION ALL SELECT '마취의학과' , 'A', 6 FROM dual UNION ALL SELECT '마취의학과' , 'B', 2 FROM dual UNION ALL SELECT '비뇨기과' , 'A', 4 FROM dual UNION ALL SELECT '비뇨기과' , 'B', 2 FROM dual ) -- 1. Partition Outer Join -- SELECT dept , c.gb , NVL(t.v, 0) v FROM (SELECT 'A' gb FROM dual UNION ALL SELECT 'B' FROM dual) c LEFT OUTER JOIN t PARTITION BY (t.dept) ON c.gb = t.gb ; -- 2. Model -- SELECT * FROM t MODEL PARTITION BY (dept) DIMENSION BY (gb) MEASURES (v) IGNORE NAV RULES (v[FOR gb IN ('A', 'B')] = v[cv()]) ;