oracle如何正列去重 oracle sql 去重

在oracle中,单表操作,怎样根据某一列去重?

可用如下方法来进行删除重复的数据。

10年积累的网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有三都免费网站建设让你可以放心的选择与我们合作。

如test表中有如下数据:

要将name重复的删除,保留其中一条数据,可用如下语句:

delete from test where age not in (select min(age) from test group by name);

commit;

执行后结果:

Oracle查询去除重数据

1。用rowid方法

据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:

查数据:

select * from table1 a where rowid

!=(select max(rowid)

from table1 b where a.name1=b.name1 and

a.name2=b.name2......)

删数据:

delete from table1 a where rowid

!=(select max(rowid)

from table1 b where a.name1=b.name1 and

a.name2=b.name2......)

2.group by方法

查数据:

select count(num), max(name) from student --列出重复的记录数,并列出他的name属性

group by num

having count(num) 1 --按num分组后找出表中num列重复,即出现次数大于一次

删数据:

delete from student

group by num

having count(num) 1

这样的话就把所有重复的都删除了。

3.用distinct方法 -对于小的表比较有用

create table table_new as select distinct *

from table1 minux

truncate table table1;

insert into table1 select * from table_new;

oracle某列内数据去重

你这个不是对列去重。你这个是行数据。

对列的去重在查询语句加distinct,例如 select distinct XXX from tablename

或者载查询语句后面加group by


本文名称:oracle如何正列去重 oracle sql 去重
文章出自:http://scyanting.com/article/hihedh.html