`
GhostWolf
  • 浏览: 311169 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

删除表中重复的数据

阅读更多
一、对于部分字段重复数据的删除
方法一:
delete from 表名 a 
where 字段1,字段2 in
(select 字段1,字段2,count(*) 
 from 表名 group by 字段1,字段2 
 having count(*) > 1)


方法二:
create table 临时表 as 
select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;
delete from 表名 a 
where a.rowid != 
(
select b.dataid from 临时表 b 
where a.字段1 = b.字段1 and 
a.字段2 = b.字段2 
);
commit;

这种先建临时表再进行删除的操作要比直接用一条语句进行删除要高效得多。


二、对于完全重复记录的删除

对于表中两行记录完全一样的情况,可以用下面语句获取到去掉重复数据后的记录:
select distinct * from 表名
可以将查询的记录放到临时表中,然后再将原来的表记录删除,最后将临时表的数据导回原来的表中。如下:
CREATE TABLE 临时表 AS (select distinct * from 表名);
drop table 正式表;
insert into 正式表 (select * from 临时表);
drop table 临时表;


如果想删除一个表的重复数据,可以先建一个临时表,将去掉重复数据后的数据导入到临时表,然后在从临时表将数据导入正式表中,如下:
INSERT INTO t_table_bak
select distinct * from t_table; 



参考链接:http://fanqiang.chinaunix.net/db/oracle/2006-02-15/3974.shtml
分享到:
评论

相关推荐

    删除表中重复数据sql语句

    ### 删除表中重复数据SQL语句详解 #### 一、基础知识概述 在数据库管理中,重复数据是一个常见的问题,尤其当数据库经历长时间的数据输入时,可能会出现数据录入错误或者批量导入过程中导致的数据冗余。重复数据的...

    如何删除表中重复数据

    ### 如何删除表中重复数据 在数据库管理与维护的过程中,经常会遇到表中存在重复记录的问题,这不仅会造成数据冗余、浪费存储空间,还可能导致数据分析结果失真。因此,了解如何有效地删除表中的重复数据是一项重要...

    查询和删除表中重复数据

    删除重复数据是维护数据完整性和准确性的重要步骤。下面介绍几种常见的删除重复数据的方法: #### 1. 删除具有相同 `peopleId` 的重复记录 **示例**: ```sql DELETE FROM people WHERE peopleId IN (SELECT ...

    Oracle删除表中的重复数据

    重复数据的存在不仅会占用额外的存储空间,还可能导致数据统计错误、数据分析偏差等问题,因此,有效地删除表中的重复数据是保持数据质量和提高数据库性能的重要环节。本文将详细解析如何在Oracle中删除表中的重复...

    查询和删除表中重复数据sql语句

    标题和描述概述的知识点主要集中在SQL语言中处理表内重复数据的方法上,涵盖了查询与删除重复数据的不同场景。下面将详细解析这些知识点: ### 查询表中重复数据 #### 单字段重复数据查询 ```sql SELECT * FROM ...

    删除表中重复数据sql语句.docx

    本文将详细讲解如何使用SQL语句来查询和删除数据库表中的重复数据。 首先,我们要了解什么是重复数据。在数据库中,重复数据是指具有相同值的一个或多个字段的数据行。例如,如果一个`people`表中有多个人具有相同...

    删除表中重复数据sql语句.pdf

    在SQL中,处理重复数据是一项常见的任务,尤其是在数据清洗和数据整理...通过巧妙地组合这些元素,我们可以有效地查询并删除重复数据,确保数据的准确性和一致性。在实际应用中,应根据具体情况选择最合适的解决方案。

    删除Access数据库中重复的数据

    6. **自动化过程**:如果经常需要进行此操作,可以考虑编写VBA宏或者使用Access的模块功能,自动化整个删除重复数据的过程。这样,只需点击一下按钮,Access就能自动检查并删除重复数据。 7. **预防措施**:为了...

    查询重复数据sql语句

    本文将详细介绍如何使用SQL语句来查询表中的重复数据,并基于提供的SQL示例进行深入分析。 ### SQL查询重复数据的核心概念 在开始之前,我们需要了解几个关键的概念: 1. **重复数据**:指的是在数据表中存在多条...

    删除数据表中重复记录

    删除重复记录的核心思想是先识别出哪些记录是重复的,然后通过某种方式将这些重复记录从数据表中移除。通常的做法包括: 1. **识别重复记录**:通过`GROUP BY`和`HAVING`子句找出具有相同字段值的记录。 2. **标记...

    Oracle数据库删除表中重复记录的方法三则.txt

    在Oracle数据库管理中,经常会遇到需要处理表中的重复数据的情况。重复数据不仅会占用不必要的存储空间,还可能导致数据统计错误或业务逻辑混乱等问题。因此,掌握如何有效地删除Oracle数据库表中的重复记录是一项...

    ORACLE删除重复数据

    在本例中,我们使用了三种不同的方法来删除重复数据,这些方法都可以达到删除重复数据的目的,但是它们的执行时间和资源消耗不同。其中,方法三的执行时间最短,适合大数据量的情况。在实际操作中,需要根据实际情况...

    SQL删除表里的重复数据的两种方法

    本文将详细介绍SQL中删除表内重复数据的两种方法,并对每种方法进行深入解析。 #### 方法一:使用子查询删除重复记录 这种方法主要是通过子查询来找到重复记录并删除它们。具体步骤如下: 1. **确定重复字段**:...

    mysql查找删除表中重复数据方法总结

    本文将详细介绍如何在MySQL中查找并删除重复数据。 首先,我们需要识别哪些数据是重复的。假设我们有一个名为`my_table`的表,其中包含`column1`和`column2`等字段,可能存在重复数据。使用`GROUP BY`和`HAVING`...

    删除链表中重复元素(c语言版)

    链表是一种常用的数据结构,它在计算机科学中用于存储和操作序列数据,特别是在需要高效插入和删除操作的情况下。本文将详细讲解如何用C语言实现一个链表,以及如何删除链表中的重复元素。 首先,我们需要定义链表...

    oracle中如何删除重复的数据

    在Oracle数据库中,删除重复数据是一项常见的数据维护任务,尤其当表设计初期未充分考虑到数据唯一性时。本文将详细探讨两种情况下的重复数据删除方法:部分字段重复和完全重复记录。 1. 部分字段重复数据的删除 ...

    数据结构c语言版链表删除重复节点

    总结起来,本文介绍了如何在C语言中使用链表数据结构删除重复节点。通过定义链表节点结构体,实现删除重复节点的函数`deleteDupNodes()`,我们可以有效地优化存储,确保链表中没有重复的元素。在实际应用中,还需...

    excel中删除重复数据

    因此,掌握如何在Excel中删除重复数据是一项非常实用且重要的技能。 ### 标题:Excel中删除重复数据 #### 知识点一:手动删除重复数据 1. **选择数据范围**:首先选中包含重复数据的列或整个数据区域。 2. **使用...

    如何高效删除Oracle数据库中的重复数据

    3. **测试**:在实际环境中删除重复数据前,最好在一个测试环境中先模拟一遍整个流程,以确保不会发生意料之外的问题。 总之,高效删除Oracle数据库中的重复数据不仅可以节省存储空间、提高查询效率,还可以保证...

Global site tag (gtag.js) - Google Analytics