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

Masalah menggunakan ROW_NUMBER() OVER (PARTITION BY ...)

Saya akan melakukan sesuatu seperti ini:

;WITH x 
 AS (SELECT *, 
            Row_number() 
              OVER( 
                partition BY employeeid 
                ORDER BY datestart) rn 
     FROM   employeehistory) 
SELECT * 
FROM   x x1 
   LEFT OUTER JOIN x x2 
                ON x1.rn = x2.rn + 1 

Atau mungkin x2.rn - 1. Anda harus melihatnya. Bagaimanapun, Anda mendapatkan idenya. Setelah tabel digabungkan, Anda dapat memfilter, mengelompokkan, mengurutkan, dll. untuk mendapatkan apa yang Anda butuhkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memantau perubahan tabel SQL Server dengan menggunakan c#?

  2. Pivot dinamis T-SQL

  3. Memulihkan Database SQL Server (T-SQL)

  4. Di Sql Server cara Pivot untuk beberapa kolom

  5. SQL Server dan C#:dapatkan id yang terakhir dimasukkan