select tag,count(tag) from exam_record er left join examination_info ei on er.exam_id=ei.exam_id
where uid in (
select uid from exam_record
where submit_time is not null
group by uid,date_format(submit_time,'%Y%m')
having sum(if(submit_time is not null,1,0))>=3
)  
group by tag
order by count(tag) desc;

老实说我感觉这个题目写的让人很迷惑,很容易想成求月平均完成试卷数大于3啊。。。。