题解 | 平均播放进度大于60%的视频类别
平均播放进度大于60%的视频类别
https://www.nowcoder.com/practice/c60242566ad94bc29959de0cdc6d95ef
WITH play_info AS(
SELECT
u.video_id,
TIMESTAMPDIFF(SECOND, start_time, end_time) AS play_time,
v.tag,
v.duration,
CASE
WHEN TIMESTAMPDIFF(SECOND, start_time, end_time) / v.duration < 1
THEN TIMESTAMPDIFF(SECOND, start_time, end_time) / v.duration
ELSE 1
END AS play_progress
FROM tb_user_video_log u
LEFT JOIN tb_video_info v
ON u.video_id = v.video_id
)
SELECT
tag,
CONCAT(ROUND(AVG(play_progress * 100), 2), "%") AS avg_play_progress
FROM play_info
GROUP BY tag
HAVING AVG(play_progress) > 0.6
ORDER BY avg_play_progress DESC
