sql >> Databasteknik >  >> RDS >> Sqlserver

Problem med att använda ROW_NUMBER() OVER (PARTITION BY ...)

Jag skulle göra något sånt här:

;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 

Eller kanske det skulle vara x2.rn - 1. Du måste se. Du fattar i alla fall idén. När du har sammanfogat tabellen på sig själv kan du filtrera, gruppera, sortera, etc. för att få det du behöver.



  1. Hur förbereder man uttalande för uppdateringsfråga?

  2. Complex Left Outer Joins i Oracle, konverterar till PostgreSQL

  3. Mysql-fråga kontrollera blob-kolumnen typ i where-satsen

  4. spring boot hibernate-fråga ogiltigt användarfel