oracle删除重复数据并只保留一条数据
2014-02-24 11:40
323 查看
1.delete from t_test t1 where t1.id in (select t.id from t_test t group by t.id having count(1)>1)
and t1.rowid not in (select min(rowid) from t_test t group by t.id having count(*)>1)
补充:having和where区别
1.where:约束声明,在返回结果产生作用不支持聚合函数。
2.having:过滤声明,在返回结果后产生作用,从结果集中进行过滤,支持聚合函数。
3.聚合函数:sum、avg、min、max、count等函数
2.使用中间表
create table t_test1 as select distinct* from t_test;
truncate table t_test;
insert into t_test select * from t_test1;
drop table t_test1;
and t1.rowid not in (select min(rowid) from t_test t group by t.id having count(*)>1)
补充:having和where区别
1.where:约束声明,在返回结果产生作用不支持聚合函数。
2.having:过滤声明,在返回结果后产生作用,从结果集中进行过滤,支持聚合函数。
3.聚合函数:sum、avg、min、max、count等函数
2.使用中间表
create table t_test1 as select distinct* from t_test;
truncate table t_test;
insert into t_test select * from t_test1;
drop table t_test1;
相关文章推荐
- Oracle删除重复记录只保留一条数据的几种方法
- oracle 删除掉重复数据只保留一条
- oracle 查询重复数据并且删除, 只保留一条数据的SQL语句
- Oracle删除重复记录只保留一条数据的几种方法
- 【Oracle】Having关键字的使用,删除重复数据但保留一条
- Oracle 删除重复数据且保留一条数据
- oracle 查询重复数据并且删除, 只保留一条数据
- Oracle查询重复数据并删除,只保留一条记录
- oracle 查询重复数据并且删除, 只保留一条数据
- oracle 删除掉重复数据只保留一条
- Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- 删除oracle 表中重复数据sql语句、保留rowid最小的一条记录
- Oracle删除重复记录只保留一条数据的几种方法
- Oracle查询重复数据并删除,只保留一条记录
- 笔记:Oracle查询重复数据并删除,只保留一条记录
- Oracle查询重复数据并删除,只保留一条记录
- oracle 查询重复数据并且删除, 只保留一条数据
- oracle 快速移动数据和删除重复数据但保留其中一条数据
- 笔记:Oracle查询重复数据并删除,只保留一条记录