select uid, 'activity1' as activity from examination_info join exam_record using(exam_id) where year(submit_time)=2021 group by uid having min(score) >= 85 union select distinct uid, 'activity2' as activity from examination_info join exam_record using(exam_id) where year(submit_time)=2021 and score > 80 and timestampdiff(minute,start_time,submit_time)<duration/2 # 这边要注意不是小于等于,题目描述有问题,实际是要用小于一半时间完成 and difficulty = 'hard' order by uid