加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 07:05:25 所属栏目:MsSql教程 来源:网络整理
导读:我从这个链接有这个代码: 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 是否可以删除第一个输入的重复行或者
我从这个链接有这个代码: 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读