select
        a.cid,
        a.pv,
        row_number() over(order by a.pv desc,cit.release_date desc ) as rk
from (
    select
        cid,
        cast(count(uid) as decimal(10,3)) as pv
    from 
            play_record_tb
    group by
            cid,
            uid
    having
            count(uid) > 1
)a
left join 
        course_info_tb as cit
on 
        a.cid = cit.cid
limit 3