在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?
2009-08-10 15:19
507 查看
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
相关文章推荐
- 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?
- 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复
- 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?
- 存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?
- SQL语句 删除表user 中字段name 内容重复的记录,A表 ,B表 字段相同 有关联关系的表 对表两个表中的数据
- 如何使用Oracle查询并删除重复记录的SQL语句
- 如何使用Oracle查询并删除重复记录的SQL语句
- 如何用一条sql语句删除表中所相同的记录?
- 四种方法教你如何用SQL语句删除重复记录
- 如何删除表中的重复记录?等等常用SQL语句的积累
- 四种方法教你如何用SQL语句删除重复记录
- sql语句删除重复的记录的方法
- [SQL]查询及删除重复记录的SQL语句
- 有用的SQL语句(删除重复记录,收缩日志)
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- 删除Table中完全重复记录 SQL语句
- mysql删除重复记录的SQL语句
- postgresql删除重复记录的一些相关sql语句
- sql如何通过语句批量增加数据;删除表中重复数据
- 几个删除重复记录的SQL语句