Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Проблем при използване на ROW_NUMBER() OVER (PARTITION BY ...)

Бих направил нещо подобно:

;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 

Или може би ще бъде x2.rn - 1. Ще трябва да видите. Във всеки случай схващате идеята. След като обедините самата таблица, можете да филтрирате, групирате, сортирате и т.н., за да получите това, от което се нуждаете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Премахнете крайните интервали и актуализирайте в колони в SQL Server

  2. Заявка за избор на данни между две дати във формат m/d/yyyy

  3. Как да игнорирате html тагове в Sql Server 2008 Full Text Search

  4. Автоматична корекция на плана в SQL Server

  5. Какво е изчислена колона в SQL Server?