发现有两套不同的输入,一套跟示例差不多的记录,另一套行数要多不少
比较奇怪的点:我这套题有一行记录有分数,没有提交时间,导致之前一直跑不过,后改成判定提交时间是否NULL值就成功了..

select 
    uid,
    sum(if(submit_time is null , 1 , 0)) as incomplete_cnt,
    sum(if(submit_time is null , 0 , 1))  as complete_cnt,
    group_concat(distinct concat(date(start_time),":",tag) separator ';') as detail
from exam_record t1
left join examination_info t2
on t1.exam_id = t2.exam_id
where year(start_time) = 2021
group by uid
having incomplete_cnt < 5 and incomplete_cnt > 1 and complete_cnt >= 1
order by incomplete_cnt desc