WITH t1 AS (
    SELECT tag,
           ROUND(AVG(IF(
                       TIMESTAMPDIFF(SECOND, start_time, end_time) / duration > 1,
                       100,
                       TIMESTAMPDIFF(SECOND, start_time, end_time) / duration * 100
                   )) OVER (PARTITION BY tag),2) AS avg_play_progress
    FROM tb_user_video_log tu
             LEFT JOIN tb_video_info tv
                       ON tu.video_id = tv.video_id
)
SELECT DISTINCT tag,
    CONCAT (avg_play_progress, '%') AS avg_play_progress
       FROM t1
WHERE avg_play_progress > 60
ORDER BY avg_play_progress DESC;

# 注意一点就是,秒数相减要采用 TIMESTAMPDIFF(单位,start,end)函数