| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1013 人关注过本帖
标题: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
快速回复:mysql 如何根据条件删除重复行
数据加载中...
 
   



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

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