Pouvons-nous utiliser LAG/LEAD à la place ?
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 choisira le prochain CreateDT (suivant défini par "la ligne qui a le même code et le plus grand CreateDt temporellement après le CreateDT de la ligne actuelle") par rapport à la ligne actuelle. DATEDIFF obtient la différence en secondes (choisissez une période appropriée). Il doit être enveloppé dans une sous-requête (ou CTE si vous préférez) car la fonction de fenêtre LEAD ne peut pas apparaître dans un MAX
Ce n'est peut-être pas particulièrement utile, bien sûr.. Ajoutez peut-être aussi le code :
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