SSMS
 sql >> डेटाबेस >  >> Database Tools >> SSMS

प्रति मूल्य किसी भी 2 लगातार पंक्तियों के बीच अधिकतम समय अंतर कैसे प्राप्त करें?

क्या हम इसके बजाय 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



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. LINQ से SQL निष्पादन समय SSMS SQL से 50x लंबा है

  2. शर्त के आधार पर स्क्रिप्ट तैयार करना

  3. Microsoft SQL सर्वर विदेशी कुंजी निर्भरताएँ sp_MSनिर्भरता का उपयोग करके दिखाई देती हैं लेकिन sys.foreign_keys में सूचीबद्ध नहीं हैं

  4. SQL सर्वर प्रबंधन स्टूडियो - एकाधिक डेटाबेस पर नाम से संग्रहीत कार्यविधि खोजें

  5. किसी अन्य SQL सर्वर से कनेक्ट करने के लिए T-SQL सिंटैक्स क्या है?