Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

टीएसक्यूएल ओवर क्लॉज:काउंट (*) ओवर (ऑर्डर बाय ए)

यह एक रनिंग टोटल देता है (यह कार्यक्षमता SQL सर्वर में संस्करण 2012 तक लागू नहीं की गई थी ।)

ORDER BY विंडो को UNBOUNDED PRECEDING . के साथ समेकित करने के लिए परिभाषित करता है और CURRENT ROW निर्दिष्ट नहीं होने पर डिफ़ॉल्ट के रूप में। SQL सर्वर डिफ़ॉल्ट रूप से कम अच्छा प्रदर्शन कर रहा है RANGE ROWS . के बजाय विकल्प ।

RANGE . के लिए विंडो में संबंधों के मामले में उनके पास अलग-अलग शब्दार्थ हैं संस्करण में न केवल वर्तमान पंक्ति (और पिछली पंक्तियाँ) शामिल हैं, बल्कि a के समान मान वाली कोई अतिरिक्त बंधी पंक्तियाँ भी शामिल हैं वर्तमान पंक्ति के रूप में। इसे नीचे दिए गए परिणामों में से प्रत्येक द्वारा गिने जाने वाली पंक्तियों की संख्या में देखा जा सकता है।

SELECT  a, 
        b,
        COUNT(*) OVER (ORDER BY a 
                         ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS  [Rows],
        COUNT(*) OVER (ORDER BY a 
                         RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS [Range],
        COUNT(*) OVER() AS [Over()]
    FROM    t;

रिटर्न

a        b        Rows        Range       Over()
-------- -------- ----------- ----------- -----------
NULL     NULL     1           4           12
NULL     NULL     2           4           12
NULL     NULL     3           4           12
NULL     NULL     4           4           12
a        b        5           7           12
a        b        6           7           12
a        b        7           7           12
c        d        8           11          12
c        d        9           11          12
c        d        10          11          12
c        d        11          11          12
e        NULL     12          12          12

जिस परिणाम की आप अपेक्षा कर रहे थे उसे प्राप्त करने के लिए दोनों . को छोड़ दें PARTITION BY और ORDER BY और एक खाली OVER() . का उपयोग करें खंड (ऊपर भी दिखाया गया है)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में केस स्टेटमेंट में सेट का उपयोग करें

  2. SQL सर्वर में किसी तालिका में JSON कैसे सम्मिलित करें

  3. लिंक किए गए सर्वर पर पहचान डालने में विफल रहता है

  4. SQL सर्वर डेटाबेस में पुनर्प्राप्ति लंबित स्थिति को कैसे ठीक करें?

  5. संग्रहीत कार्यविधि से SQL सर्वर एजेंट कार्य निष्पादित करना और कार्य परिणाम लौटाना