打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sql 去重 查找并删除重复记录并且只留一条记录

1.支持单条件或者多条件,查找重复记录,语句:

  1. select * from stock a
  2. where (a.state,a.org_id,a.material_id)
  3. in (select state,org_id,material_id from stock
  4. where state = 1 group by state,org_id ,material_id having count(*) > 1)

    其中“a.state”、“a.org_id”、“material_id”,为条件查询,也就是这三个调件相同。

2.删除重复记录并且只留一条记录

  1. delete from stock
  2. where (org_id,material_id,state)
  3. in (SELECT * from
  4. (select org_id,material_id, state from stock WHERE state = 1 group by org_id,material_id,state having count(*) > 1)
  5. a)
  6. and stock_id
  7. not in (SELECT * from
  8. (select min(stock_id) from stock where state = 1 group by org_id,material_id,state having count(*)>1) b
  9. )

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
mySQL DML语句及DQL部分语句
Oracle 删除重复数据只留一条
User.xml
从数据库中随机抽N条记录
随机提取N条记录总结
MySQL学习笔记——查询技巧
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服