У меня есть ряд показателей, сохраняемых по секундам.Я пытаюсь создать отчет, который будет выполнять следующее:
- средние показатели по часам
- максимум в час
- минут в час
- включите дату / время для часов без данных
Этот запрос почти дает правильные результаты.Однако, в течение нескольких дней есть данные, я НЕ хочу результатов UNION, которые дают нулевые значения.Я хочу, чтобы те бросили.
SELECT HOUR, METRIC, MINIMUM, MAXIMUM FROM (
select
to_char(day,'DD-MON-YY "-" HH24":00"') AS HOUR,
round(avg(duration), 2) AS METRIC,
round(min(duration), 2) AS MINIMUM,
round(max(duration), 2) AS MAXIMUM
from log_events
where day > to_date('08-NOV-10', 'DD-MON-YY')
and day < to_date('08-NOV-10', 'DD-MON-YY') + 2
and company = 'company A'
and component = 'api layer'
and event_label = 'execution request'
group by to_char(day,'DD-MON-YY "-" HH24":00"')
UNION
select to_char(trunc(to_date('08-NOV-10', 'DD-MON-YY'))+(level-1)/24, 'DD-MON-YY "-" HH24":00"') HOUR,
null as METRIC,
null as MINIMUM,
null as MAXIMUM
from dual connect by level <= 48
)
order by HOUR;
Я даже не уверен, что это правильный способ запроса данных.Любой совет?