`

delete duplicate rows with Oracle SQL

阅读更多
set feedback off

create table T (col1 varchar2(5), col2 varchar2(2));


insert into T values ('a','a');
insert into T values ('a','a');

insert into T values ('a','z');
insert into T values ('a','z');

insert into T values ('a',null
);
insert into T values ('a',null
);

insert into T values ('m','q');
insert into T values ('m','q');

insert into T values ('m',null
);

insert into T values ('s','c');
insert into T values ('s','c');
insert into T values ('s','c');

insert into T values ('s','x');

insert into T values ('v','u');


delete from T t1
where t1.rowid
 > 
             ( select min(t2.rowID) from T t2
               where t1.col1 = t2.col1
               and t1.col2 = t2.col2);


select * from t;

drop table t;


//================================
It's easy to introduce duplicate rows of data into Oracle tables by 
running a data load twice without the primary key or unique indexes 
created or enabled.


Here's how you remove the duplicate rows before the primary key or unique indexes can be created:
 
DELETE FROM our_table
WHERE rowid not in
(SELECT MIN(rowid)
FROM our_table
GROUP BY column1, column2, column3... ;
  
Here column1, column2, column3 constitute the identifying key for each record.
 


Be sure to replace our_table
 with the table name from which 
you want to remove the duplicate rows. The GROUP BY is used on the 
columns that make the primary key for the table. This script deletes 
each row in the group after the first row.


分享到:
评论

相关推荐

    ORACLE Duplicate复制数据库

    ### ORACLE RMAN DUPLICATE 数据库复制详解 #### 概述 在Oracle环境中,通过RMAN(Recovery Manager)工具可以高效地复制整个数据库。本文将详细介绍如何利用RMAN的`DUPLICATE`命令来实现数据库的复制,并针对两种...

    通过duplicate搭建oracle dataguard环境

    ### Oracle DataGuard 环境搭建详解:使用Duplicate方法 #### 一、Oracle DataGuard简介与应用场景 Oracle DataGuard是一种高可用性和灾难恢复解决方案,它能够保护数据免受逻辑和物理故障的影响。DataGuard通过...

    Delete Duplicate Files

    "Delete Duplicate Files"这个工具就是为了帮助用户解决这个问题而设计的。它能够高效地查找并删除目录中的重复文件,节省宝贵的磁盘空间,提高系统性能。 重复文件可能由于多种原因产生,例如:下载相同内容的文件...

    Oracle sqldeveloper without jdk (win+linux)

    Oracle SQL Developer, v1.5.0.54.40 Release Notes 完整版下载:http://www.oracle.com/technology/global/cn/software/products/sql/index.html 1. Known Issues 1.1 General - Print prints only one page ...

    Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库

    Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库 Oracle 11gR2 中使用 RMAN duplicate from active database 复制数据库是一种高效的数据库复制方法。这种方法可以直接从活动数据库复制,省去...

    Oracle Rman Active Database Duplicate 迁移方案V1.1.pdf

    Oracle Rman Active Database Duplicate 迁移方案 本文档主要介绍 Oracle Rman Active Database Duplicate 迁移方案,适用于 Oracle 11g/12c 版本。该方案旨在帮助数据库管理员快速迁移数据库,减少迁移时间和风险...

    Oracle RMAN DUPLICATE教程

    ### Oracle RMAN DUPLICATE 教程详解 #### 一、RMAN Duplicate 概述 **RMAN (Recovery Manager)** 是 Oracle 数据库管理系统中的一个重要工具,用于管理数据库的备份、恢复以及灾难恢复策略。其中,**Duplicate** ...

    SQL删除重复列

    WITH RankedData AS ( SELECT ioIdQ, ROW_NUMBER() OVER (PARTITION BY ioIdQ ORDER BY (SELECT NULL)) AS RowNum FROM guojian ) DELETE FROM RankedData WHERE RowNum > 1; ``` #### 七、性能考虑 在选择具体...

    SQL - SQL-Manual

    Table of Contents Introduction Course Objectives What is a Relational Database? What is SQL? Basic Queries Selecting All Columns & Rows Selecting Specific Columns ...Eliminating Duplicate Rows

    Oracle 11g RAC-RAC DG Duplicate搭建(生产操作文档).docx

    总之,Oracle 11g RAC-RAC DG Duplicate的搭建是一个复杂的过程,需要细心规划和严谨的操作。通过这个文档,我们可以了解到从备份、参数设置、redo log管理到Data Guard配置等一系列关键步骤,这些都是确保数据库高...

    Oracle 11gR2 dataguard搭建说明 --- duplicate方式.txt

    Oracle 11gR2 dataguard搭建说明

    Oracle DG 通过rman部署过程(单例Oracle 12c-Oracle 12c)

    SQL> alter database add standby logfile group 1 ('/u01/app/oracle/oradata/orstd/standby_1.dbf') size 100M; SQL> alter database open read only; ``` **3. 启用 Data Guard** ```sql SQL> alter database ...

    SQL21日自学通

    Searching for Duplicate Records in Your Database491 总结491 校练场492 练习492 第三周回顾494 附件A 在SQL 中的常见术语495 ALTER DATABASE495 ALTER USER495 BEGIN TRANSACTION 495 CLOSE CURSOR495 COMMIT ...

    oracle常见错误号

    2. ORA-00957:duplicate column name - 在创建表或修改表结构时,如果列名重复,会出现此错误。确保所有列名都是唯一的。 3. ORA-01403:no data found - 在执行`SELECT INTO`或`EXISTS`查询时,如果没有找到匹配...

    01 利用duplicate搭建DG.txt

    Oracle DataGuard搭建通过duplicate

    Tool_delete_duplicate_file.exe

    删除文件夹下相同的文件 博客: 【python中级】 基于md5值的图片去重工具 https://blog.csdn.net/jn10010537/article/details/118784182

    outlook duplicate items remover

    Outlook Duplicate Items Remover是一款专为Microsoft Outlook设计的工具,旨在帮助用户解决电子邮件、联系人、日历项、任务和笔记等重复数据的问题。在Outlook中,由于各种原因(如手动复制、同步错误或软件故障)...

    Oracle 管理核心脚本

    "Oracle管理核心脚本"集合了DBA日常工作中常用的SQL脚本,这些脚本涵盖了数据库的多个方面,如性能监控、空间管理、用户权限控制等。下面将详细介绍这些关键知识点: 1. **性能监控**: - SQL脚本可以用于监控...

Global site tag (gtag.js) - Google Analytics