Oracle删除重复的记录

来源:互联网 发布:求是不是质数的算法 编辑:程序博客网 时间:2024/09/21 09:19
获取姓名相同的条数>=2的姓名
select name from Person group by name having count(*)>=2;


获取所有这些姓名的ID
select id from Person where name in (select name from Person group by name having count(*)>=2);


找出重复记录中第一条记录的主键
select min(id) from Person group by name having count(*) >= 2;select min(id), name, count(*) from Person group by name having count(*) >= 2;


删除重复的记录

delete from Person where -- 删除姓名相同数量>=2的数据        id in (select id from Person where name in (                select name from Person group by name having count(*) >= 2))-- 并且不是第一条        and id not in (select min(id) from Person group by name having count(*) >= 2);



0 0
原创粉丝点击