• Oracle 删除重复数据只留一条


     1 查询及删除重复记录的SQL语句
     2  
     3 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断
     4  
     5 select * fromwhere Id in (select Id fromgroup byId having count(Id) > 1)
     6  
     7 2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
     8  
     9 DELETE fromWHERE (id) IN ( SELECT id FROMGROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROMGROUP BY id HAVING COUNT(*) > 1);
    10  
    11 3、查找表中多余的重复记录(多个字段)
    12  
    13 select * from 表 a where (a.Id,a.seq) in(select Id,seq fromgroup by Id,seq having count(*) > 1)
    14  
    15 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
    16  
    17 delete from 表 a where (a.Id,a.seq) in (select Id,seq fromgroup by Id,seq having count(*) > 1) and rowid not in (select min(rowid) fromgroup by Id,seq having count(*)>1)
    18  
    19 5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
    20  
    21 select * from 表 a where (a.Id,a.seq) in (select Id,seq fromgroup by Id,seq having count(*) > 1) and rowid not in (select min(rowid) fromgroup by Id,seq having count(*)>1)
    【签名→→→】【****知其然知其所以然****】 工具只能帮助我们解决我们认识到的问题,解决不了我们都没理解的问题。 不能再把一切扔给框架、容器、工具! 首先理解你的业务逻辑,理解你要实现的功能, 然后搞清楚框架、容器、工具会帮助我们做什么。 只有理解了自己的业务逻辑,理解了自己的代码,理解了自己要用到的第三方代码, 才能真正完美地实现我们需要的功能!
  • 相关阅读:
    D
    A
    D
    G
    H
    E
    F
    B
    D
    oracle中新建用户和赋予权限
  • 原文地址:https://www.cnblogs.com/yaowukonga/p/3480576.html
Copyright © 2020-2023  润新知