select video_id, round(sum(case when timestampdiff(second,start_time,end_time)>= duration then 1 else 0 end )/count(*),3) as avg_comp_play_rate from tb_user_video_log join tb_video_info using(video_id) where year(start_time) =2021 group by video_id order by avg_comp_play_rate desc
主要是注意完播率的定义。