Kunnen we in plaats daarvan LAG/LEAD gebruiken?
SELECT MAX(diff_sec) FROM
(
SELECT
DATEDIFF(
SECOND,
CreateDT,
LEAD(CreateDT) OVER(PARTITION BY CODE ORDER BY CreateDT) --next row's createdt
) as diff_sec
FROM Occs
)x
LEAD kiest de volgende CreateDT (de volgende gedefinieerd door "de rij met dezelfde code en de tijdelijk grotere CreateDt na de CreateDT van de huidige rij") relatief aan de huidige rij. DATEDIFF krijgt het verschil in seconden (kies een geschikt tijdsbestek). Het moet worden afgerond in een subquery (of CTE als je dat liever hebt) omdat de vensterfunctie LEAD niet kan verschijnen in een MAX
Het is natuurlijk misschien niet erg handig.. Voeg misschien ook de code toe:
SELECT x.code, MAX(x.diff_sec) FROM
(
SELECT
code,
DATEDIFF(
SECOND,
CreateDT,
LEAD(CreateDT) OVER(PARTITION BY CODE ORDER BY CreateDT) --next row's createdt
) as diff_sec
FROM Occs
)x
GROUP BY x.code