sql >> Database >  >> RDS >> Sqlserver

Probleem bij gebruik van ROW_NUMBER() OVER (PARTITION BY ...)

Ik zou zoiets als dit doen:

;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 

Of misschien zou het x2.rn - 1 zijn. Je zult het moeten zien. Je snapt het idee in ieder geval. Zodra je de tabel op zichzelf hebt toegevoegd, kun je filteren, groeperen, sorteren, enz. om te krijgen wat je nodig hebt.



  1. Groepeer opeenvolgende rijen met dezelfde waarde met tijdspannes

  2. Verbinding met MySQL-server verbroken bij 'initieel communicatiepakket lezen', systeemfout:0

  3. SQL Update en vervang substring

  4. Android Sqlite onupgrade verwijder tabel uit database