首页 > 数据库 > SQL Server > 正文

sql 删除表中的重复记录

2020-07-25 12:42:08
字体:
来源:转载
供稿:网友

遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢

如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长)

select MIN(ID) as id, StructSN ,Date,UserID,StarCount,COUNT(StructSN) as cfrom T_Dor_StructStar where Date >= '20160919'group by StructSN ,Date,UserID,StarCounthaving COUNT(StructSN) > 1

然后就可以直接删除,基本原理就是,找到重复记录的每一条记录,排除掉重复id最小的记录,删除剩余的重复记录。

delete from T_Dor_StructStarwhere ID in (select s.ID from T_Dor_StructStar s,(select MIN(ID) as id, StructSN ,Date,UserID,StarCount,COUNT(StructSN) as cfrom T_Dor_StructStar where Date >= '20160919'group by StructSN ,Date,UserID,StarCounthaving COUNT(StructSN) > 1)awherea.Date = s.Dateand a.StructSN = s.StructSNand a.UserID = s.UserIDand a.StarCount = s.StarCountand a.id != s.ID)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持武林网!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表