with t2 as (select cid,format(pv,3) pv from (select uid,cid,count(cid) pv from play_record_tb group by uid,cid having count(cid)>1) t1) select t2.cid,pv,row_number()over( order by pv desc,release_date desc) rk from t2 join course_info_tb on t2.cid=course_info_tb.cid order by rk limit 3