(select uid,'activity1' as activity from exam_record where year(submit_time) = 2021 group by uid having min(score) >=85) union all (select distinct uid,'activity2' as activity from exam_record left join examination_info on examination_info.exam_id = exam_record.exam_id where difficulty = 'hard' and score > 80 and timestampdiff(minute,start_time,submit_time) < (duration/2)) order by uid
活动1的筛选较为简单,活动二的筛选用到了timestampdiff这个函数来计算时间差,最后union all连接即可。