您的位置:首页 > 数据库 > Oracle

Oracle删除重复的记录

2015-08-05 21:05 495 查看
获取姓名相同的条数>=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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: