oracle怎么对列去重 oracle 去重计数

oracle某列内数据去重

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

成都创新互联公司服务项目包括拉萨网站建设、拉萨网站制作、拉萨网页制作以及拉萨网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,拉萨网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到拉萨省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

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

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

Oracle如何去重?

select distinct clom_name from table_name --利用distinct对列clom_name去重

select clom_name from table_name a

where rowid =(select max(b.rowid) from table_name b where a.clom_name=b.clom_name);

--利用rowid唯一标识的特性对列clom_name 去重

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如何消除重复列

select col1,col2,count(*)

from tab_1

group by col1,col2

having count(*) 1;

查出来重复数据了

然后

delete tab_1 a where rowid in (

select max(rowid) from tab_1 b

where a.col1=b.col1

and a.col2=b.col2

);

OK,搞定!

记住了,删除之前一定要先备份,在查询是不是要删除的数据,然后再删除。

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

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

如test表中有如下数据:

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

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

commit;

执行后结果:


分享标题:oracle怎么对列去重 oracle 去重计数
文章源于:http://hbruida.cn/article/hjojdh.html