/*
SELECT u.video_id
 ,ROUND
  (AVG
   (CASE WHEN TIMESTAMPDIFF(SECOND,u.start_time,u.end_time) >= i.duration THEN 1 ELSE 0 END)
    ,3) AS avg_comp_play_rate
 FROM tb_user_video_log AS u
INNER JOIN tb_video_info AS i ON u.video_id = i.video_id
WHERE year(u.start_time) = 2021
AND year(u.end_time) = 2021
GROUP BY u.video_id
ORDER BY avg_comp_play_rate DESC;
*/


SELECT
    u.video_id,
    ROUND(
        AVG(
            CASE WHEN TIMESTAMPDIFF(SECOND,u.start_time,u.end_time) >= v.duration
                THEN 1 ELSE 0 END
        )
    ,3) AS avg_comp_play_rate
FROM tb_user_video_log AS u
INNER JOIN tb_video_info AS v
    ON (u.video_id = v.video_id)
WHERE start_time >= '2021-01-01'
    AND start_time < '2022-01-01'
GROUP BY u.video_id
ORDER BY avg_comp_play_rate DESC;