select a.video_id, round(sum(if((end_time-start_time-b.duration)>=0,1,0))/count(a.video_id),3) avg_comp_play_rate from tb_user_video_log a left join tb_video_info b on a.video_id =b.video_id where year(start_time)=2021 group by a.video_id order by avg_comp_play_rate desc 用sum(if())的方式提出需要的条件计算完播率