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

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

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

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

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

delete from   table_name where (name) in

(select Name from table_name  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   table_name t1  where (t1.name,t1.unit_id) in 
(select t2.name,t2.unit_id from table_name  t2 group by  t2.name,t2.unit_id  having count(*)>1)

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

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

3、查询表中重复数据,重复数据是根据多个字段(name,UNIT_ID)来判断,不包含rowid最小的记录

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

Oracle删除重复数据并且只留其中一条数据的更多相关文章

  1. 初探oracle删除重复记录,只保留rowid最小的记录

    如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种方法,如下只是介绍了两种方法(exist和in两种). 1.首 ...

  2. oracle删除重复记录,只保留rowid最小的记录

    初探oracle删除重复记录,只保留rowid最小的记录   如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种 ...

  3. mysql中删除重复记录,只保留一条

    表结构如下: mysql> desc test1; +--------------+------------------+------+-----+---------+------------- ...

  4. Access数据库删除重复记录,只保留一条记录的做法

    Access数据库删除重复记录,只保留一条记录的做法: 只保留id最小的记录方法: delete from [表名] where id not in (select min(id) from [表名] ...

  5. SQL Server 删除重复记录,只保留一条记录

    原文地址:http://blog.csdn.net/eriato/article/details/17417303 有张表格之前没有设计关键字段的唯一约束,导致有时候执行插入操作时不小心执行了多次就出 ...

  6. SQL删除重复的记录(只保留一条)

    首先新建表: --创建示例表 CREATE TABLE t ( id ,) PRIMARY KEY, a ), b ) ) --插入数据 INSERT INTO t SELECT 'aa','bb' ...

  7. SQL 删除重复记录,并保留其中一条

    --查找表中多余的重复记录select * from code_xz where code in (select code from code_xz group by code having coun ...

  8. SQL 删除重复记录,只保留一条记录

    DELETE FROM py_bond_shenzhen_exchange_opinion_2_1 WHERE id NOT IN (SELECT id FROM (SELECT min(id) AS ...

  9. oracle 查询重复数据并且删除, 只保留一条数据

    数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据,只保留正确的数据 一:重复数据根据单个字段进行判断 1.首先,查询表中多余的数据,由关键字段(name)来查询. sele ...

随机推荐

  1. Python3.5学习之旅——day2

    本节内容: 1.模块初识 2..pyc是什么? 3.Python的数据类型 4.三元运算 5.进制 6.byte类型 7.数据运算 8.列表 9.元组 10.课后练习 一.模块初识 由day1的学习我 ...

  2. MySQL之正则

    八:正则匹配: 语法: select * from 表名 where 字段名 regexp "正则表达式"; PS:MySQL中正则匹配,不能使用\w等字幕作为匹配

  3. JS原型链的理解和使用(二)

    根据在创建对象的时候,创建出来的对象的__proto__指向创建这个对象的函数的prototype属性. 由于在调用对象的属性或者方法的时候会首先在对象的作用域中查找指定的属性或者方法,如果未找到则会 ...

  4. c# 字符串比较优化

    一,优化举例 二,浅谈StringComparison 三,C# CultureInfo 类 各国语言对应的区域性名称 一,优化举例 我们在写程序的时候,经常会用到字符串对比.例如:if(IsChec ...

  5. Python学习笔记002

    字符编码:把二进制字符翻译成字符 ASCII码表    256    一个字节,8个比特 支持中文: GB2312 GBK1.0 GB18030 BIG5(台湾) unicode UTF-8 开头定义 ...

  6. Linux 下面搭建KMS服务器

    1. 下载安装Linux 版的KMS服务软件 # wget https://github.com/Wind4/vlmcsd/releases/download/svn1111/binaries.tar ...

  7. A letter for NW RDMA configuration

    Dear : If you have to use EMC NW NDMA to backup oracle database and want to see what happen when bac ...

  8. Celeste 机制研究

    0. 简介.惯例.总论 Celeste (塞莱斯特) 是一个具有优秀手感的平台跳跃游戏. 虽然操作所使用的按键很少, 但是却有着复杂的组合机制. 在游戏实现上, Celeste 是一个锁定 60 帧 ...

  9. Ubuntu 编译 LAMP

    下载apache源码 http://httpd.apache.org/ 解压缩apache安装包,进入apache文件夹. 安装: apache2.2.9./configure --prefix=/u ...

  10. I Hate it-HDU1754 点修改+区间最大值

    题意: 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感.不管你喜不喜欢, 现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然, ...