我正在使用SQL Server 2008 R2。我的管理工作室WORK
有一张桌子。我想获得此表中每位员工的前3条记录。该表具有主键workID
和外键employeeiD
。该表按日期降序排序。我不需要连接到其他表。仅获取当前employeeID
的特定前3个记录。这是我的示例查询。
SELECT
wtop.workid, wtop.employeeid
FROM
work wtop
WHERE
wtop.employeeid IN (SELECT TOP 3 wsub.employeeid
FROM work wsub
WHERE wsub.employeeid = wtop.employeeid
ORDER BY wsub.employeeid)
答案 0 :(得分:5)
如何使用ROW_NUMBER。
像
这样的东西;WITH WorkVals AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY employeeID ORDER BY [Date] DESC) RowID
FROM Work
)
SELECT *
FROM WorkVals
WHERE RowID <= 3