J'ai une table ressemble à cecicomment calculer le temps dans SQL
ID DTTM
123456789 2017-10-05 08:00:00.000
123456789 2017-10-05 08:05:00.000
123456789 2017-10-05 08:07:00.000
123456789 2017-10-05 08:15:00.000
123456789 2017-10-05 08:25:00.000
123456789 2017-10-05 09:00:00.000
123456789 2017-10-05 09:01:00.000
123456789 2017-10-05 09:02:00.000
123456789 2017-10-05 09:03:00.000
123456789 2017-10-05 11:00:00.000
Je dois créer un drapeau basé sur l'intervalle de temps (date pas d'importance) Il doit être intervalle de 15 minutes pour pour mettre le drapeau à 1 Donc dans ce cas, les lignes 1,4,6,10 seront drapeau et le total sera de 4 pour cet ID Chaque fois que le interval >= 15 minutes
il va recommencer jusqu'à la prochaine J'ai essayé quelque chose comme ça; Avec myLead AS
(
Select top 100 percent
ID,
DTTM,
LEAD(DTTM,1) over (partition by ID order by DTTM) as NextDTTM
From Example
Order by ID
), myCount
AS
(
Select Top 100 percent
ID,
DTTM,
NextDTTM,
DateDiff("MINUTE",DTTM,NextDTTM) as Interval
from myLead
)
Select ID,
DTTM,
NextDTTM,
Interval,
Case When Interval >= 15 then 1 else 0 END as CountFlag
From myCount
Where Interval is not NULL
Order by ID
Mais il ne fonctionne comme prévu? comment puis-je résoudre cela.
Merci, Oded Dror
Gotqn, Nous vous remercions de votre aide, le problème a déjà été résolu. Cette solution ne donnera pas le résultat que je cherchais. –