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

清除冗余记录的SQL语句

发布时间:2018-08-15 20:13:17 所属栏目:站长百科 来源:站长网
导读:问题:设表T中有五个字段A,B,C,D,ID,其中ID字段是为自动增量整型字段(唯一值)。业务数据生成时有重复插入现象,现需对A、B、C、D四字段完全一样的脏数据进行清理,要求设计一SQL语句,对四个字段完全一样的记录,仅保留ID最小的一条,其余作删除处理

问题:设表T中有五个字段A,B,C,D,ID,其中ID字段是为自动增量整型字段(唯一值)。业务数据生成时有重复插入现象,现需对A、B、C、D四字段完全一样的脏数据进行清理,要求设计一SQL语句,对四个字段完全一样的记录,仅保留ID最小的一条,其余作删除处理。


DELETE FROM T WHERE [ID] IN
(
 select [ID] from T where A in
  (select A  from T Group By A,B,C,D Having count(*)>1)
 and [ID]<>
  (select min(ID) as minID  from T Group By A,B,C,D Having count(*)>1)
)


更正:
delete from T
where T.ID not in (select min(ID) from T group by T.A,T.B,T.C,T.D)

(编辑:核心网)

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

    热点阅读