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

नंबर कॉलम बदलें

यह अंतराल और द्वीपों की समस्या है।

एक दृष्टिकोण। SQL Fiddle

WITH T1
     AS (SELECT *,
                ROW_NUMBER()
                  OVER (
                    PARTITION BY NAME
                    ORDER BY DATE) - ROW_NUMBER()
                                       OVER (
                                         PARTITION BY NAME, [PAY]
                                         ORDER BY DATE) AS Grp
         FROM   Table1),
     T2
     AS (SELECT *,
                MIN(DATE)
                  OVER (
                    PARTITION BY NAME, Grp) AS MinDate
         FROM   T1)
SELECT [NAME],
       [PAY],
       [DATE],
       DENSE_RANK()
         OVER (
           PARTITION BY NAME
           ORDER BY MinDate) AS CHANGEGROUP
FROM   T2
ORDER  BY NAME,
          MinDate 



  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 सर्वर में प्राथमिक कुंजी प्राप्त करने के 11 तरीके (T-SQL उदाहरण)

  2. SQL सर्वर प्रबंधन स्टूडियो (SSMS) के साथ डेटाबेस डिज़ाइन सीखें - भाग 2

  3. SQL सर्वर में फ्लोट को वर्चर में कैसे बदलें

  4. Ubuntu पर sqlcmd और bcp कैसे स्थापित करें?

  5. जब कोई 'आदेश' निर्दिष्ट नहीं किया जाता है, तो आपके रिकॉर्ड सेट के लिए एक क्वेरी किस क्रम को चुनती है?