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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的MsSQL相关文章