标题:mysql 如何根据条件删除重复行
只看楼主
小样的天空
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-8-29
 问题点数:0 回复次数:2 
mysql 如何根据条件删除重复行
我有一个表,表中有3列,列1 为case,列2 为 FDA_DT, 列3为 ISR. 我想对表进行去重,去重条件:对于具有相同CASE号的报告,选取FDA_DT值最新,即上报日期最新的报告;其次,对于CASE号和FDA_DT日期数据均相同的不良事件报告,选取ISR值最大的报告。
搜索更多相关主题的帖子: 条件 mysql 删除 相同 重复 
2022-08-29 15:02
csy110
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-10-11
得分:0 
程序代码:
select * from accpet

insert into accpet values('2','20221010','11')
insert into accpet values('3','20221015','11')
insert into accpet values('2','20221012','15')
insert into accpet values('2','20221010','14')

--以上面的数据为例,对于表aa的记录进行扫描,
--对于其中任一条记录,查询相同表中相同CASE的记录,查找其中是否存在FDA_DT>另一条FDA_DT的记录,如存在,扫描到的记录即不符合条件,
--如不存在,即扫描到的记录符合where的条件,将作为查询结果.
--第二个去重条件同理。
--注:内嵌的那条not EXISTS条件用小于是因为外部还有一个not EXISTS。
select aa.* from accpet aa where 
not EXISTS (select 1 from accpet bb where bb.icase=aa.icase and bb.FDA_DT>aa.FDA_DT
and not EXISTS (select 1 from accpet cc where cc.icase=aa.icase and  cc.FDA_DT=aa.FDA_DT and cc.ISR<aa.ISR))
2022-10-12 10:40
csy110
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-10-11
得分:0 
回复 楼主 小样的天空
代码还有哪里不理解可以问我
2022-10-12 10:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509906-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 3.088439 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved