Как подсчитать время?

 
0
 
SQL
ava
dell23 | 26.09.2013, 12:17
Подскажите пожалуйста с запросом или алгоритмом.
Имеется таблица, в которую записывается включения и отключения насоса. Записывается время (в секундах от эпохи Unix) и действие, "вкл" или "выкл" насос. Нужно посчитать, сколько работал насос. Но проблема в том, что часто записываются ошибочые показания, например:
1300 вкл
1350 выкл
1370 вкл
1400 вкл
1430 вкл
1470 выкл
здесь ошибочно были записаны значения 1400 и 1430. Как составить такой запрос, который бы учитывал только пары значений "вкл"-"выкл"? Т.е. повторяющиеся действия нужно игнорировать.
Comments (2)
ava
Akina | 26.09.2013, 11:49 #
Составь запрос на удаление ошибочных записей. И выполни его. А потом уже считай на чистых данных.
ava
Zloxa | 26.09.2013, 12:40 #

  8  select sum(tm)
  9  from(
10  select case when lag(op,1,'выкл') over (order by time) != 'выкл'
11           then time -  lag(time) over (order by time)
12          end tm
13  from t
14  )
15  /
   SUM(tm)
----------
       150


Должно работать для MS, оракли, постргиса
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Akina ava  Zloxa   dell23
advanced
Submit