Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zmień kolumnę numeru

To jest problem luk i wysp.

Jedno podejście. Skrzypce SQL

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. Jak określić lokalizację plików danych i plików dziennika podczas tworzenia bazy danych w SQL Server

  2. Łączenie Javy z SQL Express

  3. Czy lepiej jest użyć unikatowego identyfikatora (GUID) lub bigint dla kolumny tożsamości?

  4. Jak przekazać wartość do parametru procedury składowanej w składniku źródłowym OLE DB?

  5. Odrzuć login SQL nawet po zalogowaniu