重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1。用rowid方法
创新互联公司主营博州网站建设的网络公司,主营网站建设方案,app软件开发公司,博州h5微信小程序定制开发搭建,博州网站营销推广欢迎博州等地区企业咨询
据据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;
方法一:可以通过group by 进行分组。\x0d\x0asql:select username,count(username) from tablename grop by username;\x0d\x0a解释:以上sql就是通过分组函数读取出tablename表中username的值和每个不同值的统计个数。\x0d\x0a方法二:可以通过distinct函数 进行去重查询。\x0d\x0asql:select distinct username from tablename\x0d\x0a解释:本sql就是查询出所有的tablename表中的username值(不重复)。
(1)查找有没有重复数据可以用去重统计(distanct+count)和本身的统计数据(count)对比,二者数据不同,那么就说明有重复数据。
(2)重复数据有哪些,可以用全体分组(group by+count)只要不等于1的就是就是重复数据
(3)在所有数据中显示重复数据。要用到开窗函数rank()over(group by 全体字段),这样可以给每条数据的前面都加上编号,也就是说只要前面的编号不是1,那么这条数据就是重复的。