sql >> Base de Datos >  >> RDS >> Sqlserver

Problemas al usar ROW_NUMBER() SOBRE (PARTICIÓN POR...)

Yo haría algo como esto:

;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 

O tal vez sería x2.rn - 1. Tendrás que ver. En cualquier caso, te haces una idea. Una vez que haya unido la tabla sobre sí misma, puede filtrar, agrupar, ordenar, etc. para obtener lo que necesita.