Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разница между датами в таблице  [new]
STestS
Member

Откуда:
Сообщений: 78
Здравствуйте.
Есть таблица которая имеет ВРЕМЯ, СОБЫТИЕ, ЗНАЧЕНИЕ.
+

Time			Event		Value
16.07.2019 9:05		A		546
16.07.2019 9:05		A		9854
16.07.2019 9:06		B		13218
16.07.2019 9:07		A		948
16.07.2019 9:08		C		24
16.07.2019 9:08		C		915
16.07.2019 9:09		A		3
16.07.2019 9:09		B		254


Нужно подсчитать количество элементов у которых разница между событиями меньше 1 минуты. Подскажите как можно решить задачу?
Спасибо.
19 фев 21, 14:38    [22283516]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
4es
Member

Откуда:
Сообщений: 24
STestS,

DATEDIFF function
19 фев 21, 14:48    [22283521]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
msLex
Member

Откуда:
Сообщений: 8700
STestS,

lag/lead + datediff
19 фев 21, 15:27    [22283545]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
STestS
Member

Откуда:
Сообщений: 78
msLex,

Спасибо за информацию. На тестовом примере пробовал то все работает но в примере было 2-е колонки с датами а ка сделать с одной не знаю...
22 фев 21, 09:54    [22284633]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
STestS
Member

Откуда:
Сообщений: 78
SELECT LAG([datetime]) OVER(ORDER BY [datetime]) PrevCode, [datetime]
	FROM [DBBO].[dbo].[Journal1] 
		where [datetime] >'2021-02-18 09:50:00' and [datetime] <'2021-02-18 10:00:00' and [code]=5 


Получить предыдущее значение получилось так, теперь по идеи нужно перебирать разницу между датами но как? Нужно создать еще одну таблицу?
22 фев 21, 09:55    [22284634]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
godsql
Member

Откуда:
Сообщений: 146
STestS,
сразу делайте
SELECT datediff(mi,LAG([datetime]) OVER(ORDER BY [datetime]) PrevCode, [datetime])
	FROM [DBBO].[dbo].[Journal1]
... 
22 фев 21, 11:03    [22284648]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
STestS
Member

Откуда:
Сообщений: 78
godsql
STestS,
SELECT datediff(mi,LAG([datetime]) OVER(ORDER BY [datetime]) PrevCode, [datetime])
	FROM [DBBO].[dbo].[Journal1]


SELECT LAG([datetime]) OVER(ORDER BY [datetime]) PrevDatetime,[datetime], DATEDIFF(SECOND,(LAG([datetime]) OVER(ORDER BY [datetime])),[datetime])
	FROM [DBBO].[dbo].[Journal1]
	 where [datetime] >'2021-02-21 08:00:00' and [datetime] <'2021-02-22 08:00:00' and [code]=5


Теперь все заработало в плане отображения разницы между датами, а как теперь подсчитать сколько событий было до 1 минуты и суммарное время секунд ?
22 фев 21, 12:48    [22284691]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
godsql
Member

Откуда:
Сообщений: 146
STestS,

select count(*), sum(diff) from (select ... ,..,.. as diff from ..) a
where diff<60
22 фев 21, 13:10    [22284711]     Ответить | Цитировать Сообщить модератору
 Re: Разница между датами в таблице  [new]
STestS
Member

Откуда:
Сообщений: 78
godsql,

Спасибо большое. работает!
22 фев 21, 14:06    [22284740]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить