select
    a.uid,
    sum(case when submit_time is null then 1 else 0 end) as incomplete_cnt,
    sum(case when submit_time is not null then 1 else 0 end) as complete_cnt,
    group_concat(distinct concat_ws(':',date(start_time),tag) order by start_time separator';') as detail
from 
    exam_record a 
left join
    examination_info b on a.exam_id = b.exam_id
where 
    year(a.start_time) = 2021
group by 
    a.uid
having 
    sum(case when submit_time is not null then 1 else 0 end) >=1 
    and 
    sum(case when submit_time is null then 1 else 0 end) < 5
    and
    sum(case when submit_time is null then 1 else 0 end) > 1
order by 
    incomplete_cnt desc