Рассчитать разницу во времени для того же столбца в SQL Server - PullRequest
0 голосов
/ 27 сентября 2019

Я хотел бы получить разницу во времени между строками для одного приложения, и если разница во времени составляет менее 5 минут, то считается одним приложением.

Ввод:

AppNumber   Employee    Date        Time_generatedat
-----------------------------------------------------
143270137   shiva       23/09/2019  12:24   
143270137   shiva       23/09/2019  12:25   
143270137   shiva       23/09/2019  12:27   
143270137   shiva       23/09/2019  13:16   
12339090    kalyan      23/09/2019  08:13   
12339090    kalyan      23/09/2019  09:14   

Выход:

AppNumber   Employee    Date    Time_generatedat    output
-------------------------------------------------------------
143270137   shiva   23/09/2019  12:24               1
143270137   shiva   23/09/2019  12:25               1
143270137   shiva   23/09/2019  12:27               1 
143270137   shiva   23/09/2019  13:16               2
12339090    kalyan  23/09/2019  08:13               1
12339090    kalyan  23/09/2019  09:14               2

enter image description here

Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2019

Вы можете использовать lag() и совокупную сумму:

select t.*,
       sum(case when prev_time_generatedat > dateadd(minute, -5, time_generatedat)
                then 0 else 1
           end) over (partition by appnumber, date order by time_generatedat) as output
from (select t.*,
             lag(time_generatedat) over (partition by appnumber, date order by time_generatedat) as prev_time_generatedat
      from t
     ) t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...