select pt.cid cid ,CAST(count(*) as DECIMAL(10,3)) pv ,row_number()over(order by count(*) desc, release_date desc) rk from play_record_tb pt left join course_info_tb ct on pt.cid = ct.cid group by uid, pt.cid, release_date having count(*) > 1 limit 3