(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连接即可。