select i2.tag,count(*) as tag_cnt
from
(
select distinct a.uid
from
(select uid,date_format(e.submit_time,'%Y%m') as month
,count(e.submit_time) as cnt
from exam_record e
left join examination_info i
on e.exam_id = i.exam_id
group by 1,2
having count(e.submit_time) >= 3
)a #首先找出月均答题数超过3次的用户
)a1 #注意!再将uid提出来,避免后续连接产生多重数据!
join exam_record e2
On a1.uid = e2.uid
join examination_info i2
on e2.exam_id=i2.exam_id
group by i2.tag
order by count(*) desc
#接着,找出以上用户的作答卷子tag,并group求出