Possiamo invece usare LAG/LEAD?
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 sceglierà il successivo CreateDT (successivo definito da "la riga che ha lo stesso codice e il CreateDt maggiore temporaneamente dopo il CreateDT della riga corrente") rispetto alla riga corrente. DATEDIFF ottiene la differenza in secondi (scegli un intervallo di tempo adatto). Deve essere chiuso in una sottoquery (o CTE se preferisci) perché la funzione della finestra LEAD non può apparire all'interno di un MAX
Forse non è particolarmente utile, ovviamente. Forse aggiungi anche il codice:
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