首页 > 解决方案 > TSQL - 删除重复的最旧值

问题描述

我想创建一个 SQL 脚本来执行以下操作:

谢谢

在此处输入图像描述

标签: sqlsql-servertsqlduplicatessql-delete

解决方案


我喜欢为此使用可更新的 CTE:

with cte as (
    select row_number() over(partition by userid order by logintim desc) rn
    from mytable
)
delete from cte where rn > 1

对于 each userid,这将保留最新的行logintim并删除其他行(如果有)。


推荐阅读