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

标签 sql-server select group-by

我有一个表 (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/

相关文章:

sql - 从 GROUP BY 操作中选择最大计数

sql-server - 如何使两个相关但独立的系统保持同步?

sql-server - 将一个数据库的表与另一个数据库的表进行比较

c# - 存储过程不允许空参数,即使参数表示接受空值?

sql - 如何仅过滤表格中的首次出现

python - 类型错误 : execute() takes from 2 to 3 positional arguments but 7 were given

sql - Spark group By + join 与窗口函数性能对比

dataframe - 使用 findall() 函数在多个条件下搜索数据框中的索引

php - 更新值而不删除其他值并删除 PHP CONCAT 列中的现有值

SQL 语句 HAVING MAX(some+thing)=some+thing