高效快速删除Oracle表中重复记录

  以前的一篇删除重复记录的虽然还不错 但是在我遇到重量级的大表时还是显的力不从心,不小心想到一种新的方法

  思路1、保存不重复的记录

  2、保存重复记录中的一个rowid

  //3、删除原表中rowid不为步骤2中rowid的记录 ,留下重复数据中的一条

  3.找出记录中rowid为步骤2中rowid的记录

  4 、1和3数据连接就是所要的数据了

  具体操作例子

  第一步:www.examw.com

  SQL> create table xxfgs_sig as (select imeid imeid,max(dn) dn,max(xlh) xlh,max(pro_name) pro_name,max(area_name) area_na

  me,max(brand) brand,max(m_type) m_type from xxfgs group by imeid having count(*)<2);

  第二步:

  SQL> create table xxfgs_row as (select max(rowid) rowdata,imeid from xxfgs group by imeid having count(*)>1);

  //第三步:////可以考虑给meid建索引

  //SQL>delete from xxfgs where rowid not in (select rowdata from xxfgs_row);

  //或者

  //SQL>delete from xxfgs a where a.rowid <>(select rowdata from xxgs_row b where a.meid=b.meid)。

时间: 2025-01-11 11:38:45

高效快速删除Oracle表中重复记录的相关文章

Sql Server里删除数据表中重复记录的例子_MsSql

[项目] 数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除! [分析] 1.生成一张临时表new_users,表结构与users表一样: 2.对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表:如果已经有了相同的项,则忽略此条记录: 3.把users表改为其它的名称,把new_users表改名为users,实现我们的需要. [程序] 复制代

sql过滤、删除、表中重复记录语句

文章介绍利用having group by 及各种select in 联合查询来实现的多种不同方法的过滤重复记录的sql语名. - 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 代码如下 select * from people where peopleId in (select   peopleId  from   people  group  by   peopleId  having  count(peopleId) > 1) 2.删除表中多余的重复记录,重

Sql Server里删除数据表中重复记录的例子

[项目] 数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除! [分析] 1.生成一张临时表new_users,表结构与users表一样: 2.对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表:如果已经有了相同的项,则忽略此条记录: 3.把users表改为其它的名称,把new_users表改名为users,实现我们的需要. [程序] 复制代

Oracle如何删除表中重复记录

Oracle如何删除表中重复记录 1  引言 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢? 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 2  处理过程 重复的数据可能有这样两种情况:第一种是表中只有某些字段一样,第二种是两行记录完全一样.删除重复记录后的结果也分为2种,第一种是重复的记录全部删除,第二种是重

如何删除表中重复记录?

问题描述 最近项目中遇到了一个需求,即"如何删除表中重复记录,使得所有重复的记录都只保留一行?".在Google了半个小时之后,发现居然没有一个是正常可用的,于是乎只好自己动手写了一个.因为即便是Grails提供了很好的GORM,但是使用SQL仍然不可能完全避免,因此把它共享出来.原文链接:http://www.groovyq.net/node/162 解决方案 解决方案二:你这是广告还是啥的???解决方案三:ding解决方案四:广而告之解决方案五:看了@@顶下解决方案六:帮顶下解决方

如何有条件的分步删除数据表中的记录

数据|条件 如何有条件的分步删除数据表中的记录作者:eygle出处:http://blog.eygle.com日期:February 22, 2005« 自己动手,丰衣足食 | Blog首页 有时候我们需要分配删除数据表的一些记录,分批提交以减少对于Undo的使用,本文提供一个简单的存储过程用于实现该逻辑.你可以根据你的需要进行适当调整,本例仅供参考: SQL> create table test as select * from dba_objects;Table created.SQL>

看实例学VFP:删除数据表中的记录

本例对看实例学VFP:对数据表中记录进行修改一文的实例进行了一点改进,增加了"撤消"功能.程序运行时如下图: 在组合框中选择要查找的字段,在文本框中输入查找内容后单击右侧的"查找"按钮后将查找结果显示在上方的表格中,"查找"按钮变成"撤消"按钮,同时激活"删除"按钮及用于显示数据的文本框,并将当前记录(满足查询条件的记录)的值同时显示在文本框中,:单击"删除"按钮后会删除查找出来的记录刷

Excel怎么快速删除工作表中空白行

  Excel怎么快速删除工作表中空白行          1.启动Excel 2013并打开工作表,这张工作表中存在一些空行.在工作表中选择数据区域,在"开始"选项卡的"编辑"组中单击"排序和筛选"按钮,在打开的下拉列表中选择"筛选"选项,如图1所示. 图1 选择"筛选"选项 2.此时,数据表的列标题右侧将会出现筛选下三角按钮,单击任意一个下三角按钮,在打开的下拉列表中取消对"全选"复

oracle-为什么用plsql删除Oracle表中的字段,过一段时间怎么几个字段又出来了

问题描述 为什么用plsql删除Oracle表中的字段,过一段时间怎么几个字段又出来了 为什么删除Oracle数据库中某张表的字段,怎么过一会几个字段又出来了呢??? 用的hibernate和spring,, 这个是什么情况 解决方案 会不会是hibernate自动帮你建的啊?