with t1 as( select uid,cid,count(1) cnt from play_record_tb group by uid,cid ),t2 as( select cid, sum(if(cnt>1,cnt,0)) pv from t1 group by cid ) select c.cid,pv,row_number() over(order by pv desc,release_date desc) rk from t2 left join course_info_tb c on t2.cid = c.cid limit 3