select b.cid,pv,
row_number() over(order by pv desc,release_date desc) as rk
from
(select cid,sum(pv) as pv
from
    (select cid,uid,
round(cast(count(*) as float),3) as pv

from  play_record_tb

group by cid,uid
having pv>1)a
group by cid)b
join course_info_tb c on b.cid = c.cid
limit 3

二刷 一个细节是“如果某人对某视频观看了n次(n>1),则记为该视频重复观看次数+n”如果有两个用户重复观看a视频,两个用户的重复观看次数都要加在a视频的次数上。