sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra nummerkolumn

Detta är ett problem med luckor och öar.

Ett tillvägagångssätt. 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. Regex - hitta specifikt nummer i strängen

  2. SQL:Hur håller man ordning på raderna med DISTINCT?

  3. PHP/MySQL:Lagra och hämta UUIDS

  4. ORA-01401:infogat värde för stort för kolumn CHAR