Как я могу агрегировать количество секунд в результате запроса? - PullRequest
2 голосов
/ 12 августа 2010

У меня есть таблица Oracle 10g, которая содержит # записей журнала.Эта таблица собирает данные с устройства записи среды, которое создает запись журнала каждые 15 секунд, когда оно работает.

Я хочу добавить все секунды вместе с датами чтения записей файла журнала, чтобы убедиться, что регистратор работал> 24 часа (84 600 секунд).Данные выглядят так:

ID     READING_DATE 
286294 8/4/2010 1:03:30 PM 
286295 8/4/2010 1:03:45 PM 
286296 8/4/2010 1:04:00 PM 
286297 8/4/2010 1:04:15 PM 
286298 8/4/2010 1:04:30 PM 
286299 8/4/2010 1:04:45 PM 
286300 8/4/2010 1:05:00 PM 

Я не могу просто запросить (дата окончания - дата начала), потому что устройство может не работать 24 часа подряд.Он может работать в общей сложности 24 часа в течение 90 дней.

Что я хочу сделать, это написать запрос, который будет выполняться базой данных, который добавляет каждые 15 секунд интервал к последнему, чтобы увидеть, получу ли я результат, превышающий> 84600.Любые / все ответы приветствуются!Заранее спасибо,

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

Количество секунд работы устройства составляет примерно:

SELECT COUNT(*) * 15
FROM your_table
0 голосов
/ 13 августа 2010

Если у вас есть несколько устройств, зарегистрированных в этой таблице, и вы хотите перечислить все устройства, которые работали в течение> 1 дня.

SELECT device_id
FROM log_table
GROUP BY device_id
HAVING MAX(reading_date) - MIN(reading_date) > 1.0
...