【oracle】sql处理重复数据
2015-03-25 10:22
183 查看
查询哪些数据有重复的
select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1
查询哪些数据没有重复的
select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) = 1
删除重复数据,只保留最新的一条数据(rowid为实际存储数据的物理id,所以越大说明插入的越后,即越新)
delete from 表名 a
where a.rowid !=
(
select max(b.rowid) from 表名 b
where a.字段1 = b.字段1 and
a.字段2 = b.字段2
)
数据量大的请执行:
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 表名);
delete from table 正式表;
insert into 正式表 (select * from 临时表);
drop table 临时表;
INSERT INTO t_table_bak
select distinct * from t_table;
本文出自 “HAPPY_CANDY” 博客,谢绝转载!
select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1
查询哪些数据没有重复的
select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) = 1
删除重复数据,只保留最新的一条数据(rowid为实际存储数据的物理id,所以越大说明插入的越后,即越新)
delete from 表名 a
where a.rowid !=
(
select max(b.rowid) from 表名 b
where a.字段1 = b.字段1 and
a.字段2 = b.字段2
)
数据量大的请执行:
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 表名);
delete from table 正式表;
insert into 正式表 (select * from 临时表);
drop table 临时表;
INSERT INTO t_table_bak
select distinct * from t_table;
本文出自 “HAPPY_CANDY” 博客,谢绝转载!
相关文章推荐
- MYSQL与Oracle如何处理重复数据的SQL
- 收集MYSQL与Oracle如何处理重复数据的SQL
- Oracle创建主键时处理重复数据的程序
- SQL分页排序的实现与分页数据重复问题——以Oracle rownum为例
- [oracle]删除一张表中重复数据,保留其id字段最小的sql
- SQL分页排序的实现与分页数据重复问题——以Oracle rownum为例
- 关于Oracle中重复数据的处理
- sql重复数据处理,有唯一ID,formid有重复,留一条
- Oracle Sql插入数据中特殊字符的处理
- oracle中sql去除重复数据
- Oracle Class6-1. PL/SQL 简介(数据类型,逻辑比较,控制结构,错误处理)
- SQL处理重复数据
- 解决sql 过滤重复数据记录的方法(Oracle)
- SQL 教程数据库包括:Oracle, Sybase, SQL Server, DB2, Access 等等,您将学到如何使用 SQL 访问和处理数据系统中的数据
- sql重复数据处理
- sql对重复数据的处理
- SQL对重复数据记录的处理
- oracle处理重复插入数据
- Sql Server cursor 的使用处理重复数据 动态拼接 SQL语句
- SQL分页排序的实现与分页数据重复问题——以Oracle rownum为例