当前位置:Gxlcms > mssql > sql删除表中的重复记录

sql删除表中的重复记录

时间:2021-07-01 10:21:17 帮助过:42人阅读

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

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

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

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

delete from T_Dor_StructStar
where ID in (
select s.ID from T_Dor_StructStar s,
(
select MIN(ID) as id, StructSN ,Date,UserID,StarCount,COUNT(StructSN) as c
from T_Dor_StructStar 
where Date >= '20160919'
group by StructSN ,Date,UserID,StarCount
having COUNT(StructSN) > 1
)a
where
a.Date = s.Date
and a.StructSN = s.StructSN
and a.UserID = s.UserID
and a.StarCount = s.StarCount
and a.id != s.ID
)

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

您可能感兴趣的文章:

  • SQL语句实现删除重复记录并只保留一条
  • MySQL数据库中删除重复记录的方法总结[推荐]
  • SqlServer2005中使用row_number()在一个查询中删除重复记录的方法
  • SQL Server2008中删除重复记录的方法分享
  • sqlserver 删除重复记录处理(转)
  • SqlServer 2005中使用row_number()在一个查询中删除重复记录
  • mysql删除重复记录语句的方法
  • SQL语句实现删除ACCESS重复记录的两种方法
  • SQL对冗余数据的删除重复记录只保留单条的说明
  • 有用的SQL语句(删除重复记录,收缩日志)

人气教程排行