У меня есть таблица вроде этого:граф секунд на переключатель интервал SQL Server
Value TimeStamp
1 2016-04-01 00:01:09.000
0 2016-04-01 00:01:09.000
0 2016-04-01 00:01:37.000
1 2016-04-01 00:01:37.000
1 2016-04-01 00:04:52.000
1 2016-04-01 00:09:58.000
1 2016-04-01 00:15:05.000
1 2016-04-01 00:20:11.000
1 2016-04-01 00:24:49.000
1 2016-04-01 00:29:55.000
1 2016-04-01 00:31:19.000
0 2016-04-01 00:31:19.000
0 2016-04-01 00:31:46.000
1 2016-04-01 00:31:46.000
1 2016-04-01 00:35:01.000
1 2016-04-01 00:40:07.000
1 2016-04-01 00:44:46.000
1 2016-04-01 00:49:52.000
1 2016-04-01 00:54:58.000
1 2016-04-01 01:00:04.000
1 2016-04-01 01:01:28.000
0 2016-04-01 01:01:28.000
0 2016-04-01 01:05:10.000
0 2016-04-01 01:09:49.000
И я хочу, чтобы отсчитывать секунды, где значение 1 (переключатель ON) в день, вот сделка; Когда TIMESTAMP повторяет это означает, что произошло изменение от 0 до 1 или наоборот в значении переключателя, у меня уже было много aproches как:
Q1 AS (SELECT ROW_NUMBER() OVER (ORDER BY TimeStamp) AS id,
Value, Timestamp
FROM Q2
GROUP BY idVBox, sensorType, sensorSubtype, timeStamp
HAVING COUNT(TimeStamp) > 1)
Then:
SELECT A.Value, DATEDIFF(SECOND,A.TimeStamp,B.TimeStamp)
FROM Q1 AS A
INNER JOIN Q1 AS B
ON B.ID = A.ID + 1
AND B.ID%2 = 0
Тогда группа по и Сумма, но здесь проблема в том, что я дон 't знать, если значение приходит в 1 или 0 из прошлого дня, и коммутатор может быстро изменить его состояние и никогда не получить фактическое значение его фактического состояния. Любая другая идея?
Вы считаете секунды между включенными и выключенными? Как его можно включить и снова включить? Я что-то упускаю. Вы должны записывать несколько переключателей. Сколько всего коммутаторов? –
Да, я хочу подсчитать время между Вкл и Выкл, где в середине последовательности находятся только строки с включенным переключателем (значение = 1). Имеется только ona-переключатель, когда времяStamps повторяется, когда коммутатор переключается. – Jorge