select t1.video_id, round(sum(if(timestampdiff(second,start_time,end_time) >= duration,1,0))/count(1),3) as avg_comp_play_rate from tb_user_video_log t1 join tb_video_info t2 on t1.video_id = t2.video_id where t1.video_id in ( select video_id from tb_user_video_log where year(start_time) = 2021 ) and year(start_time) = 2021 group by t1.video_id order by avg_comp_play_rate desc