Как выбрать значения при наличии определенного промежутка между этой и последней записью в SQL Server - PullRequest
0 голосов
/ 25 апреля 2018

Я создаю запрос, который позволил бы мне выбирать значения, когда между ним и последней записью в SQL Server имеется промежуток 10

Допустим, в морозильной камере есть датчик, датчик загружаеттемпература морозильной камеры каждые 5 минут, я пытаюсь создать запрос, который позволил бы мне получить все записи, когда температура упала на 2 ° F или более после последней записи.

Вот пример таблицы:

Value | Timestamp
------+------------------------
  10   2018-04-25 17:11:00.000 
  11   2018-04-25 17:16:00.000
  12   2018-04-25 17:21:00.000
  11   2018-04-25 17:26:00.000
  9    2018-04-25 17:31:00.000 <<<<<<<<<<<< Dropped 2°F
  10   2018-04-25 17:36:00.000 
  12   2018-04-25 17:41:00.000 
  9    2018-04-25 17:46:00.000 <<<<<<<<<<<< Dropped more than 2°F

Тогда мой желаемый результат запроса, если я хочу, чтобы он возвращал значения с 2018-04-25, будет:

Times_Dropped_2
     2

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018

Добавление к предыдущему ответу

 select count(*) from (SELECT value,
           Timestamp,
           value- LAG(value, 1, 0) OVER (ORDER BY TimeStamp) AS value_diff
    FROM   table)a
    where value_diff>=2
0 голосов
/ 26 апреля 2018
WHERE value_diff >= Temp_Value + 10

Это была пропущенная строка, спасибо

0 голосов
/ 25 апреля 2018
SELECT value,
       Timestamp,
       value- LAG(value, 1, 0) OVER (ORDER BY TimeStamp) AS value_diff
FROM   table;

Это список различий из предыдущей записи, вы можете получить необходимые детали из этого

...