select
	cid,
	round(num_cid*1.000,3) as pv,
	row_number() over(order by round(num_cid*1.000,3) desc,c.release_date desc) as rk
from (
	select
		uid,
        cid,
        count(cid) as num_cid
	from play_record_tb
    group by uid,cid
    having count(uid) > 1
) as u1
join course_info_tb c using (cid)
order by pv desc
limit 3