微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL – 如何按上次输入的值删除重复的行?

我从这个链接有这个代码How can I remove duplicate rows?
;WITH cte
 AS (SELECT ROW_NUMBER() OVER (PARTITION BY person_id,date_work,hours
                                   ORDER BY ( SELECT 0)) RN
     FROM   work_hours)
 DELETE FROM cte
 WHERE  RN > 1

是否可以删除一个输入的重复行或者我应该有一个额外的列date_of_entry?我想这样做,如果我输入相同的date_work和不同的小时PARTITION BY person_id,date_work它会随机删除重复.

如果不可能,我如何删除更高时间的重复项?

解决方法

按小时desc添加订单
;WITH cte
 AS (SELECT ROW_NUMBER() OVER (PARTITION BY person_id,date_work
                                   ORDER BY hours DESC) RN
     FROM   work_hours)
 DELETE FROM cte
 WHERE  RN > 1

原文地址:https://www.jb51.cc/mssql/77150.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐