适当的SQL Server方法用于检索此分组数据?

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)