SELECT
    u.video_id,
    round(
        (sum(
            if((TIMESTAMPDIFF(SECOND,start_time,end_time) >= duration),1,0)
            ) / COUNT(*)),3
        )avg_comp_play_rate
FROM
    tb_user_video_log u
JOIN
    tb_video_info i
ON
    u.video_id = i.video_id
WHERE
    year(u.start_time) = 2021
GROUP BY
    u.video_id
ORDER BY
    avg_comp_play_rate DESC
    

没啥说的就这样吧