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

SQL सर्वर में पिछली पंक्ति के साथ वर्तमान पंक्ति की तुलना करें

आप निम्न क्वेरी का उपयोग कर सकते हैं:

SELECT RaidNo, OutComeID, RN,
       CASE 
          WHEN OutComeID <> 16 THEN 0
          ELSE ROW_NUMBER() OVER (PARTITION BY OutComeID, grp ORDER BY RN) 
       END AS Result
FROM (
   SELECT RaidNo, OutComeID, RN,
          RN - ROW_NUMBER() OVER (PARTITION BY OutComeID ORDER BY RN) AS grp
   FROM mytable) AS t
ORDER BY RN

फ़ील्ड grp समान OutComeID . वाले लगातार रिकॉर्ड के स्लाइस (जिन्हें द्वीप भी कहा जाता है) की पहचान करता है मूल्य। बाहरी क्वेरी grp . का उपयोग करती है '16' . से संबंधित प्रत्येक रिकॉर्ड की गणना करने के लिए टुकड़ा। अन्य स्लाइस से संबंधित रिकॉर्ड्स को असाइन किया गया मान 0 . है ।

यहां डेमो करें




  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. SQL सर्वर DATETIME प्रकार एक सेकंड के 1/300 के टिक में समय क्यों बचाता है?

  3. SQL में तालिका पंक्तियों के लिए सीमा निर्धारित करें

  4. mssql वर्चर को फ्लोट में बदलें

  5. एसक्यूएल जैसे एसयूएम () के साथ कॉलम के भीतर सभी मानों को कैसे गुणा करें