Можем ли мы использовать вместо этого 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 выберет следующий CreateDT (следующий определяется "строкой с тем же кодом и первым во времени большим CreateDt после CreateDT текущей строки")) относительно текущей строки. DATEDIFF получает разницу в секундах (выберите подходящий таймфрейм). Он должен быть заключен в подзапрос (или CTE, если вы предпочитаете), потому что оконная функция LEAD не может появляться внутри MAX
Это, конечно, может быть не особенно полезно. Возможно, добавьте в код тоже:
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