数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据,只保留正确的数据

一:重复数据根据单个字段进行判断

1、首先,查询表中多余的数据,由关键字段(name)来查询。

select * from OA_ADDRESS_BOOK where name in (select name from OA_ADDRESS_BOOK group by name having count(name)>1)

2、删除表中重复数据,重复数据是根据单个字段(Name)来判断,只留有rowid最小的记录

delete from OA_ADDRESS_BOOK where (Name) in

(select Name from OA_ADDRESS_BOOK group by Name having count(Name) >1)

and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name having count(Name)>1)

二:重复数据根据多个字段进行判断

1、首先,查询表中重复数据,由关键字段(Name,UNIT_ID)来查询。

select * from OA_ADDRESS_BOOK book1 where (book1.name,book1.unit_id) in 
(select book2.name,book2.unit_id from OA_ADDRESS_BOOK book2 group by  book2.name,book2.unit_id  having count(*)>1)

2、删除表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,只留有rowid最小的记录

delete from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in 
(select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*) > 1) 
and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*)>1)


3、查询表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,不包含rowid最小的记录
select name,unit_id from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in 
(select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*) > 1) 
and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*)>1)

oracle 查询重复数据并且删除, 只保留一条数据相关推荐

  1. sql查询 找出重复数据,并且只保留一条.

    1.(错误操作)查所有的重复数据 很明显下列代码运行速度很慢 select * from 表 t where (select count(*) from 表 where 字段1=t.字段1 AND 字 ...

  2. 删除重复数据只保留一条数据

    一.表结构与数据 CREATE TABLE `duptab` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NUL ...

  3. 如何只保留1000条数据mysql_php实现只保留mysql中最新1000条记录

    mysql_connect("localhost","root","root"); mysql_select_db("test&q ...

  4. 数据库SQL去重,保留一条数据

    利用SQL,删除掉重复多余的数据,并且只保留一条数据. 1.查找表中多余的重复记录,重复记录是根据单个字段(teamId)来判断 select * from team where teamId in ...

  5. oracle查询重复保留一条-删除,Oracle查询重复数据并删除,只保留一条记录

    前言 项目中,在"资源目录-在线编目"中,资源项子表存在多条重发数据,需要进行数据清理,删除重发的数据,最终只保留一条相同的数据. 操作的表名:R_RESOURCE_DETAILS ...

  6. MySql删除重复数据(只保留一条)

    MySql删除重复数据 1. 问题引入 前一段遇到MySql数据重复的问题.由于重复向同一张表导入同一批数据,导致前台展示的数据重复,唯一方便快捷的方法莫过于利用delete操作删除重复数据(已经封板 ...

  7. mysql 查询删除重复数据,保留其中一条数据

    一.查询重复数据 --------根据多个字段查询重复数据 SELECT* FROMtable_name a WHERE(a.字段1, a.字段2) IN (SELECT字段1,字段2FROMtabl ...

  8. oracle 快速移动数据和删除重复数据但保留其中一条数据

    在项目中会遇到将一个表的部分数据移动另一个表中的事情. insert into table1 (id,其他属性) select t.a,t.c...from table2 t 注意属性类型大小要一致 ...

  9. oracle+获取最后一行数据库,获取表最后一条数据

    数据库中如何查询表的最后一条记录? MySql : SELECT * FROM 表名 ORDER BY 表_ID DESC LIMIT 1 SQLServer/Oracle : SELECT TOP ...

最新文章

  1. java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)
  2. python3.8安装教程-二、Python2.7的安装并与Python3.8共存
  3. Maven-学习笔记02【基础-Maven的安装和仓库种类】
  4. 并发测试mysql_实践100个线程:一次MySQL数据并发问题
  5. oracle数据库日期格式的运算,Oracle时间类型date,timestamp时间差计算
  6. MaxCompute客户端在windows命令行下查询中文乱码怎么办?
  7. 数据标准化处理方法_机器学习系列-数据预处理-数据标准化(归一化)-理论
  8. 学计算机的基本技能,大学计算机基础—基本应用技能[规整].pdf
  9. JAVA读取Properties文件对象常用方法总结
  10. java 内存泄漏问题_Java内存泄露的理解与解决(转)
  11. 一个字由两个字节组成
  12. ODL之VTN详解-Mac Map
  13. C++复习中相关要点记录(三)
  14. C++学习笔记:从C到C++之C++对C的加强
  15. Vue中使用marked
  16. 图书馆座位预约系统管理/基于微信小程序的图书馆座位预约系统
  17. echarts使用e_macarons方法
  18. Java学习笔记:Word中创建图表如此简单
  19. c#中实现Word、Excel、Pdf预览及音频和视频播放
  20. Win10,Win11系统安全中心提醒“找到可能不需要的应用”弹窗,如何关闭?

热门文章

  1. 在对话框中应用CScrollView显示图像
  2. python动态规划详解_经典动态规划例题整理(Python版)
  3. 64位游戏找call_《使命召唤16:战区》配置注册登录全攻略,三步让你极迅游戏!...
  4. window.unload ajax不执行_AJAX
  5. Spring复习笔记:2
  6. 姿态检测 树莓派_怎样在树莓派上轻松实现深度学习目标检测?
  7. python 使用安装虚拟环境 virtualenv
  8. 征途linux mysql_MySql征途之mysql常用命令
  9. 小程序生命周期_来,简单说说小程序的生命周期?
  10. python可视化窗口制作一个摇骰子游戏_使用python制作一个抽奖小游戏——骰子游戏...