select tag, count(*) as tag_cnt from exam_record er join examination_info using (exam_id) where exists ( select uid, date_format(submit_time, '%Y%m'), count(*) as answer_cnt from exam_record join examination_info using (exam_id) where submit_time is not null group by uid, date_format(submit_time, '%Y%m') having answer_cnt >= 3 and er.uid = uid ) group by tag order by tag_cnt desc