Home >Database >Mysql Tutorial >高效快速删除Oracle表中重复记录

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

WBOY
WBOYOriginal
2016-06-07 16:21:48863browse

以前的一篇删除重复记录的虽然还不错 但是在我遇到重量级的大表时还是显的力不从心,不小心想到一种新的方法 思路1、保存不重复的记录 2、保存重复记录中的一个rowid //3、删除原表中rowid不为步骤2中rowid的记录 ,留下重复数据中的一条 3.找出记录中rowid

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

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

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

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

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

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

  具体操作例子

  第一步:

  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(*)

  第二步:

  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)。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn