【问题标题】:TSQL - Deleting a duplicate oldest value [duplicate]TSQL - 删除重复的最旧值[重复]
【发布时间】:2021-01-20 17:13:05
【问题描述】:

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

  • 识别 USERID 字段中的重复值
  • 接下来根据最旧的LOGINTIM删除记录如下所示

谢谢

【问题讨论】:

    标签: sql sql-server tsql duplicates sql-delete


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-10
      • 2013-09-29
      • 2019-09-13
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      相关资源
      最近更新 更多