在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 去重
标题URL:http://scyingshan.cn/article/hihedh.html