예를들어서
ID | 일시 | 시작시간 | 종료시간 |
1 | 20140701 | 09 | 11 |
2 | 20140701 | 09 | 10 |
3 | 20140701 | 10 | 12 |
4 | 20140702 | 09 | 12 |
라는 테이블이 있을때
ID 1은 20140701 09시 1건, 10시 1건, 11시 1건
ID 2는 20140701 09시 1건, 10시 1건
ID 3은 20140701 10시 1건, 11시 1건, 12시 1건
ID 4는 20140702 09시 1건, 10시 1건, 11시 1건, 12시 1건
이런식으로 정리해서 시간별 사용량을 통계로 나타낼려고 하는데 쿼리로 가능한가요??
결과
일시 | 09 | 10 | 11 | 12 | .... |
20140701 | 2 | 3 | 2 | 1 | |
20140702 | 1 | 1 | 1 | 1 |
WITH t AS ( SELECT 1 id, '20140701' dt, '09' stm, '11' etm UNION ALL SELECT 2, '20140701', '09', '10' UNION ALL SELECT 3, '20140701', '10', '12' UNION ALL SELECT 4, '20140702', '09', '12' ) SELECT dt , COUNT(CASE WHEN '09' BETWEEN stm AND etm THEN 1 END) "09" , COUNT(CASE WHEN '10' BETWEEN stm AND etm THEN 1 END) "10" , COUNT(CASE WHEN '11' BETWEEN stm AND etm THEN 1 END) "11" , COUNT(CASE WHEN '12' BETWEEN stm AND etm THEN 1 END) "12" FROM t GROUP BY dt ;