क्या हम इसके बजाय 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 को सेकंड में अंतर मिलता है (उपयुक्त समय सीमा चुनें)। इसे एक सबक्वेरी (या यदि आप चाहें तो सीटीई) में लपेटने की जरूरत है क्योंकि विंडो फ़ंक्शन 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