select
    uid,
   sum(if(submit_time is null ,1,0))  incomplete_cnt,
    sum(if(submit_time is not null ,1,0)) complete_cnt,
   group_concat(distinct concat(date_format(start_time,'%Y-%m-%d'),':',tag) separator ';') detail
from exam_record
join examination_info using(exam_id)
where year(start_time)='2021'
group by uid
having incomplete_cnt>1
and incomplete_cnt<5
and complete_cnt >= 1
order by incomplete_cnt desc