select t1.video_id , round(count(if(t1.end_time-t1.start_time >= duration, 1, null)) / count(*),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 substring(t1.start_time, 1, 4) = '2021' group by t1.video_id order by avg_comp_play_rate desc