select ui.uid,count(if(submit_time is null and start_time is not null,1,null)) as incomplete_cnt,
round(ifnull(count(if(submit_time is null,1,null))/count(exam_id),0.000),3) as incomplete_rate 
from user_info ui
left join exam_record er on ui.uid=er.uid
where (
    case when (select max(cnt)
    from(select count(if(submit_time is null,1,null)) as cnt
        from user_info ui
        left join exam_record er on ui.uid=er.uid
        where level =0
        group by ui.uid)b)>2 then level =0
        else start_time is not null end
)
group by ui.uid
order by incomplete_rate

二刷