sql >> Database >  >> RDS >> Sqlserver

Nummerkolom wijzigen

Dit is een probleem met gaten en eilanden.

Eén benadering. 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. Hoe een MySQL-structuur modelleren om met authenticatie om te gaan? Met gebruikersinformatie gescheiden

  2. gegevens ophalen gegroepeerd per maand met behulp van mysql-interval

  3. Wat is het doel van het gebruik van mysql_secure_installation?

  4. Aftrekken tussen twee velden in een tabel met behulp van een SQL-query