1、 dense_rank() 相同排序+连续
1,1,2,3

select uid,count(*) exam_complete_cnt
from(
			select id,uid,exam_id,start_time,DATE_FORMAT(start_time,'%Y-%m-01') start_days,submit_time,score,rn
			from 
			(
			select id,uid,exam_id,start_time,DATE_FORMAT(start_time,'%Y-%m-01') start_days,submit_time,score,
			DENSE_RANK() over(partition by uid order by DATE_FORMAT(start_time,'%Y-%m-01') desc) rn

			from exam_record) a
			where rn<=3
) a1
group by uid
having count(*)=count(submit_time)
order by exam_complete_cnt desc,uid desc