Kan vi bruge LAG/LEAD i stedet?
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 vil vælge den næste CreateDT (næste defineret af "rækken, der har den samme kode og den midlertidigt første større CreateDT efter den nuværende rækkes CreateDT") i forhold til den aktuelle række. DATEDIFF får forskellen i sekunder (vælg en passende tidsramme). Det skal pakkes ind i en underforespørgsel (eller CTE, hvis du foretrækker det), fordi vinduesfunktionen LEAD ikke kan vises i en MAX
Det er måske ikke særlig nyttigt, selvfølgelig.. Tilføj måske også koden:
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