首页 > 开发 > 综合 > 正文

清除冗余记录的SQL语句

2024-07-21 02:06:09
字体:
来源:转载
供稿:网友

问题:设表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)

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