lar*_*ryq 2 sql-server select group-by
我有一个表(AU_EMPLOYEE),有两列名为EmployeeID(int)和LastModifiedDate(DateTime).其他列包含其他包含其他员工数据的列.这是一个审计表,每次员工的数据以某种方式更改时,都会添加新行.
所以很可能一个给定的员工在这个表中有多行.我想检索LastModifiedDate确定的每个员工的最新记录.这样做的好方法是什么?嵌套查询或沿着这些行的东西?
谢谢你的建议.
小智 6
您可以使用这样的内容来显示每个员工的最新行.这对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
Run Code Online (Sandbox Code Playgroud)