----------删除数据库中重复记录的SQL语句(转)--------------------
2016-08-11 22:26
567 查看
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
Java代码
select * from people
where peopleId in (select peopleId
from people
group by peopleId
having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
Java代码
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、查找表中多余的重复记录(多个字段)
Java代码
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
Java代码
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最小的记录
Java代码
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)来判断
Java代码
select * from people
where peopleId in (select peopleId
from people
group by peopleId
having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
Java代码
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、查找表中多余的重复记录(多个字段)
Java代码
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
Java代码
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最小的记录
Java代码
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语句
- 数据库中查找重复记录和删除重复记录的sql
- sql语句删除重复记录
- 删除数据库中出现得重复数据得sql语句!
- SQL语句快速删除重复记录
- 四种方法教你如何用SQL语句删除重复记录
- 用SQL语句删除重复记录的四种方法
- 使用一条SQL语句删除表中重复记录
- 几个删除重复记录的SQL语句(转)
- 删除不同粒度的事实表记录中重复的度量值数据的SQL语句
- 有用的SQL语句(删除重复记录,收缩日志)
- 几个删除重复记录的SQL语句!
- 使用一条SQL语句删除表中重复记录
- 使用一条SQL语句删除表中重复记录
- 几个删除重复记录的SQL语句
- 转:使用一条SQL语句删除表中重复记录