Můžeme místo toho použít 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 vybere další CreateDT (další definovaný jako "řádek, který má stejný kód a dočasně první větší CreateDt po CreateDT aktuálního řádku") vzhledem k aktuálnímu řádku. DATEDIFF získá rozdíl v sekundách (vyberte vhodný časový rámec). Je třeba to zabalit do dílčího dotazu (nebo CTE, chcete-li), protože funkce okna LEAD se nemůže objevit uvnitř MAX
Možná to není nijak zvlášť užitečné, samozřejmě. Možná také přidejte kód:
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