场景:
删除这三列重复的数据只保留一份

实现:
delete from ehr.PH_MENU_ORG a
where (a.ORG_ID,a.MENU_ID,a.PRO_TYPE) in
(select ORG_ID,MENU_ID,PRO_TYPE
from ehr.PH_MENU_ORG
where PRO_TYPE = 5
and org_Id = '243057cf-10fe-434d-a0bb-0c031131e885'
group by ORG_ID,MENU_ID,PRO_TYPE
having count(*) > 1)
and rowid not in (select min(rowid)
from ehr.PH_MENU_ORG
where PRO_TYPE = 5
and org_Id = '243057cf-10fe-434d-a0bb-0c031131e885'
group by ORG_ID,MENU_ID,PRO_TYPE
having count(*) > 1)
执行结果:
重复的四条数据已经成功删除

总结
delete from 表 a
where (a.Id, a.seq) in
(select Id, seq from 表 group by Id, seq having count(*) > 1)
and rowid not in
(select min(rowid) from 表 group by Id, seq having count(*) > 1)
该博客介绍了如何使用SQL查询删除数据库中重复的数据,通过在ehr.PH_MENU_ORG表中定位PRO_TYPE为5且ORG_ID为特定值的记录,然后利用子查询找出重复项并删除,最终成功移除了四条重复记录。
4万+

被折叠的 条评论
为什么被折叠?



