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