一、数据库中的去重操作(删除数据库中重复记录的SQL语句)主要有三种方法 (1)、rowid方法 (2)、group by 方法 (3)、distinct方法 1、用rowid方法 根据Oracle带的rowid属性,可以进行判断是否存在重复语句; (1)、查出表1和表2中name相同的数据 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 |
|