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

SQL में लगातार डुप्लिकेट मानों की गणना करें

मैं यह मानने जा रहा हूं कि id अद्वितीय और बढ़ रहा है। आप अलग-अलग पंक्ति संख्याओं का उपयोग करके लगातार मानों की गणना कर सकते हैं। निम्नलिखित सभी अनुक्रमों की गणना करता है:

select grp, value, min(id), max(id), count(*) as cnt
from (select t.*,
             (row_number() over (order by id) - row_number() over (partition by value order by id)
             ) as grp
      from table t
     ) t
group by grp, value;

अगर आप 0s का सबसे लंबा क्रम चाहते हैं:

select top 1 grp, value, min(id), max(id), count(*) as cnt
from (select t.*,
             (row_number() over (order by id) - row_number() over (partition by value order by id)
             ) as grp
      from table t
     ) t
group by grp, value
having value = 0
order by count(*) desc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल गतिशील धुरी

  2. पेंटाहो डेटा इंटीग्रेशन और बीए सर्वर टूल्स में माइक्रोसॉफ्ट एसक्यूएल सर्वर जेडीबीसी ड्राइवर्स स्थापित करना

  3. खिड़की वाले कुल कार्यों के लिए लॉजिकल रीड इतने ऊंचे क्यों हैं?

  4. बिटवाइज़-या एक सबक्वेरी में एकत्रित करें

  5. SQL सर्वर (T-SQL) में वर्तमान सत्र में उपयोग किए जा रहे दिनांक प्रारूप को कैसे खोजें