数据库的几种去重方法总结

一、数据库中的去重操作(删除数据库中重复记录的SQL语句)主要有三种方法

(1)、rowid方法

(2)group by 方法

(3)distinct方法

1、rowid方法

根据Oracle带的rowid属性,可以进行判断是否存在重复语句;

(1)、查出表1和表2name相同的数据

Select * from table1 a

Where rowid !=(select max(rowid)

       from table2 b

  Where  a.name1 = b.name1

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

(2)、删除表1和表2 name相同的所有数据

Delete from table1 a

Where rowid !=(select max(rowid)

 From table2 b

 Where  a.name1 = b.name1

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

2、group by方法

主要用于分组统计,一般都是使用在聚合函数中使用;

(1)、查数据

Select count(num), max(name) from student 列出表中的重复的记录数和学生名字的属性,

Group by num

Having count(num)>1 并按照num分组后找出表中num列出现次数大于一次的。

(2)、删除数据

Delete from student

Group by num

Having count(num)>1

//删除表中num列所有重复的数据

3、distinct方法

一般用于比较小的表进行去重,会过滤掉多余的重复记录,返回不重复的记录或字段;

(1)select distinct name

 From student

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值