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