我有一个表 (AU_EMPLOYEE),其中包含名为 EmployeeID (int) 和 LastModifiedDate (DateTime) 的两列。除了这些列之外,还有其他列包含额外的员工数据。这是一个审计表,每当员工的数据以某种方式发生变化时,都会添加一个新行。
所以给定的员工很可能在此表中有多行。我想检索由 LastModifiedDate 确定的每个员工的最新记录。这样做的好方法是什么?嵌套查询或类似的东西?
感谢您的建议。
最佳答案
您可以使用类似这样的东西来显示每个员工的最新行。这是 ROW_NUMBER 函数的一个很好的用途。
with ranking as
(
select *, ROW_NUMBER() over(partition by EmployeeID order by LastModifiedDate desc) as rn
from AU_EMPLOYEE
)
select * from ranking where rn = 1
关于sql-server - 用于检索此分组数据的适当 SQL Server 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3763775/