select t.cid, t.pv, row_number() over(order by t.pv desc, c.release_date desc) as rk
from (
    select cid, uid, sum(count(*)) over(partition by cid) as pv
    from play_record_tb
    group by cid,uid
    having count(score)>1
    ) as t
join course_info_tb c on t.cid = c.cid
order by rk
limit 3