Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Problemas ao usar ROW_NUMBER() OVER (PARTITION BY ...)


Eu faria algo assim:
;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 

Ou talvez seja x2.rn - 1. Você terá que ver. De qualquer forma, você entendeu a ideia. Depois de juntar a tabela, você pode filtrar, agrupar, classificar etc. para obter o que precisa.