select uid,count(start_time)-count(submit_time),count(submit_time)

    ,group_concat(distinct concat_ws(':',start_time,tag) order by start_time,tag separator ';')

from (select uid,substring(start_time,1,10) as start_time

        ,substring(submit_time,1,10) as submit_time,tag

        from exam_record as a,examination_info as b

        where a.exam_id=b.exam_id and start_time like '2021%'

    ) as a

group by uid

having count(submit_time)>=1 and count(start_time)-count(submit_time)<5

    and count(start_time)-count(submit_time)>1

order by count(start_time)-count(submit_time) desc