Oracle 시스템에 사용자가 수행 한 작업이 포함 된 테이블이 Oracle 데이터베이스에 있습니다. 통계 분석에 사용되며 특정 날짜에 대해 수행 된 작업 수를 시간별로 그룹화하여 표시해야합니다.레코드가없는 시간을 포함하여 시간별로 그룹화 된 레코드를 선택하는 방법
그래도 괜찮은 쿼리가 있지만 아무런 작업도 포함하지 않은 시간을 표시하지 않습니다 (분명히 그 시간 동안 표시 할 레코드가 없기 때문입니다). 예를 들어
쿼리 :
SELECT TO_CHAR(event_date, 'HH24') AS during_hour,
COUNT(*)
FROM user_activity
WHERE event_date BETWEEN to_date('15-JUN-2010 14:00:00', 'DD-MON-YYYY HH24:MI:SS')
AND to_date('16-JUN-2010 13:59:59', 'DD-MON-YYYY HH24:MI:SS')
AND event = 'user.login'
GROUP BY TO_CHAR(event_date, 'HH24')
ORDER BY during_hour;
이 (홀수 시작과 끝 날짜에 더주의를 기울이 없다, 그들은 GMT에있어 때문에이처럼 나는 GMT + 10 해요 -하지만 그건입니다 별도의 문제가이 질문에)
이것은의 결과 세트를 생산하고 답변 할 수있는 능력에 영향을 미치는 않는 :
DURING_HOUR COUNT(*)
---------------------- ----------------------
00 12
01 30
02 18
03 20
04 12
05 24
06 20
07 4
23 8
9 rows selected
가 어떻게 0 이벤트가 포함 하루의 시간을 표시하려면이 쿼리를 ammend 수 있습니까?
Stack Overflow를 검색하여 비슷한 질문을했지만 내 특정 문제에 대한 답변이 없습니다.
귀하의 협조에 감사드립니다.