select aa.uid, aa.c, aa.b, aa.d 
from(
#用子查询算出作答数a,完成数b,未完成数c
select uid, count(start_time) a, count(submit_time) b, count(start_time)-count(submit_time) c, group_concat(distinct concat_ws(':',date(start_time),tag) separator ';') d from exam_record left join examination_info using(exam_id) where year(start_time)=2021
group by uid having a>=1 and c>1 and c<5) as aa
order by aa.c desc