Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ubah kolom nomor

Ini adalah masalah kesenjangan dan pulau.

Satu pendekatan. 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. Panggil laporan SSRS di klik tombol dan perlu mendapatkan output sebagai file PDF

  2. T-SQL untuk menemukan Indeks yang Berlebihan

  3. SQL Server setara dengan CREATE OR REPLACE VIEW Oracle

  4. SQL Server JIKA TIDAK ADA Penggunaan?

  5. Bagaimana cara mengambil desimal saat membulatkan rata-rata dalam SQL