Oracle中删除重复的记录
来源:互联网 发布:python netifaces模块 编辑:程序博客网 时间:2024/05/21 09:43
1 建示例表
SQL> create table tt(name varchar2(10), kecheng varchar2(10), score number);
Table created
2 插入数据
SQL> insert into tt values(1,2,3);
1 row inserted
SQL> insert into tt values(1,2,3);
1 row inserted
SQL> insert into tt values(1,2,4);
1 row inserted
SQL> insert into tt values(1,2,4);
1 row inserted
SQL> insert into tt values(1,2,4);
1 row inserted
SQL> insert into tt values(1,2,4);
1 row inserted
SQL> insert into tt values(1,2,4);
1 row inserted
SQL> insert into tt values(1,2,4);
1 row inserted
SQL> insert into tt values(1,2,5);
1 row inserted
SQL> insert into tt values(1,2,5);
1 row inserted
SQL> insert into tt select * from tt;
10 rows inserted
SQL> insert into tt select * from tt;
20 rows inserted
SQL> insert into tt select * from tt;
40 rows inserted
SQL> insert into tt select * from tt;
80 rows inserted
SQL> insert into tt select * from tt;
160 rows inserted
SQL> insert into tt select * from tt;
320 rows inserted
SQL> insert into tt select * from tt;
640 rows inserted
SQL> insert into tt select * from tt;
1280 rows inserted
SQL> insert into tt select * from tt;
2560 rows inserted
SQL> insert into tt select * from tt;
5120 rows inserted
SQL> insert into tt select * from tt;
10240 rows inserted
SQL> insert into tt select * from tt;
20480 rows inserted
SQL> insert into tt select * from tt;
40960 rows inserted
SQL> select count(*) from tt;
COUNT(*)
----------
81920
3 删除方法1
SQL> delete from tt a
2 where a.rowid != (select max(b.rowid)
3 from tt b
4 where b.name = a.name
5 and b.kecheng = a.kecheng
6 and b.score = a.score);
81917 rows deleted
Executed in 2.25 seconds
4 删除方法2
SQL> delete from tt
2 where rowid in (select rid
3 from (select rowid as rid,
4 row_number() over(partition by name, kecheng, score order by rowid) as rn
5 from tt) a
6 where a.rn > 1);
81917 rows deleted
Executed in 1.875 seconds
81917 rows deleted
5 比较
1. 方法1消耗io较少, cost比较大(14526), 但是更消耗cpu
2. 方法2消耗io较多, 但是cost较小(1007), 消耗cpu也较少
- Oracle中删除重复的记录
- oracle中删除重复的记录
- oracle中删除重复记录
- Oracle中删除重复记录
- oracle中删除重复记录
- oracle 删除重复的记录
- oracle 删除重复的记录
- Oracle删除重复的记录
- oracle中删除表中重复记录
- Oracle删除重复记录oracle 删除重复记录的高效方法 && mysql 删除重复记录方法
- 在Oracle中如何删除重复的记录?
- oracle中查询及删除重复记录的sql
- Oracle数据库删除表中重复记录的常见方法
- ORACLE中最高效的删除重复记录方法
- Oracle数据库删除表中重复记录的常见方法
- Oracle中查找和删除重复记录的方法总结
- Oracle数据库删除表中重复记录的常见方法
- Oracle如何查找、删除表中重复的记录
- 【SQL精彩语句】合并列值
- 3ds Max初学者实验1(老师的 哈哈)
- PHP学习方法
- QT的下载网址
- ARM指令寻址方式
- Oracle中删除重复的记录
- GLSL语言摘要(二): build-in function
- 【SQL精彩语句】SQL SERVER 2000中查询指定节点及其所有子节点的函数(表格形式显示)
- 实验二
- 高精度计算:梅森数(1)
- 【SQL精彩语句】SQL SERVER 2005中查询指定节点及其所有子节点的方法(表格形式显示)
- C#中的语言特性都是从何而来?
- 笔记本电池
- 解决ftp登录遇到connect:没有到主机的路由