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

केवल पंक्तियों द्वारा sql समूह जो क्रम में हैं

इसे "द्वीप" समस्या के रूप में जाना जाता है। इट्ज़िक बेन गण के दृष्टिकोण का उपयोग करना:

;WITH YourTable AS
(
SELECT 1 AS N, 'A' AS C UNION ALL
SELECT 2 AS N, 'A' AS C UNION ALL
SELECT 3 AS N, 'A' AS C UNION ALL
SELECT 4 AS N, 'B' AS C UNION ALL
SELECT 5 AS N, 'B' AS C UNION ALL
SELECT 6 AS N, 'B' AS C UNION ALL
SELECT 7 AS N, 'A' AS C UNION ALL
SELECT 8 AS N, 'A' AS C
),
     T
     AS (SELECT N,
                C,
                DENSE_RANK() OVER (ORDER BY N) - 
                DENSE_RANK() OVER (PARTITION BY C ORDER BY N) AS Grp
         FROM   YourTable)
SELECT COUNT(*),
       C
FROM   T
GROUP  BY C,
          Grp 
ORDER BY MIN(N)


  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 सर्वर varchar कॉलम से अजीब वर्ण (A टोपी के साथ) निकालें

  3. चयन कथनों में NOLOCK संकेत का प्रभाव

  4. एसक्यूएल कास्ट डेटाटाइम

  5. SQL सर्वर 2016:एक डेटाबेस का बैकअप लें