您的位置:首页 > 数据库

查找sql表中多余的重复记录

2014-08-05 10:42 183 查看
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select distinct * 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 C_Yyt
WHERE (Elon IN   (SELECT elon   FROM C_Yyt   GROUP BY elon, wd   HAVING COUNT(*) > 1)) AND (wd IN    (SELECT wd    FROM C_Yyt       GROUP BY elon, wd   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
)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: