Bisakah kita menggunakan LAG/LEAD saja?
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 akan memilih CreateDT berikutnya (berikutnya ditentukan oleh "baris yang memiliki kode yang sama dan CreateDt yang lebih besar untuk sementara setelah CreateDT baris saat ini") relatif terhadap baris saat ini. DATEDIFF mendapatkan perbedaan dalam hitungan detik (pilih kerangka waktu yang sesuai). Itu perlu dibungkus dalam subquery (atau CTE jika Anda mau) karena fungsi jendela LEAD tidak dapat muncul di dalam MAX
Ini mungkin tidak terlalu berguna, tentu saja.. Mungkin tambahkan kode juga:
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