题解 | 各个视频的平均完播率

各个视频的平均完播率

https://www.nowcoder.com/practice/96263162f69a48df9d84a93c71045753

WITH tongji AS (
    SELECT 
    a.uid,
    a.video_id,
    a.start_time,
    a.end_time,
    CASE WHEN (a.end_time - a.start_time >= b.duration) THEN 1 ELSE 0 END AS "is_wanbo"
FROM tb_user_video_log as a
LEFT JOIN tb_video_info as b
ON a.video_id = b.video_id
WHERE 1=1 
# AND YEAR(b.release_time) = 2021
AND YEAR(a.start_time) = 2021
AND YEAR(a.end_time) = 2021

)
, juhe AS
(
    SELECT 
        video_id,
        COUNT(*) AS shuliang,
        SUM(is_wanbo) AS wanboshuliang
    FROM tongji
    GROUP BY video_id
)
SELECT 
    video_id,
    ROUND(wanboshuliang/shuliang,3) AS avg_comp_play_rate
FROM juhe
ORDER BY avg_comp_play_rate DESC ;
主要分为三步:
1.表连接并且查询出播放数据在21年的
2.创建辅助列来判断一个视频是否完成了播放
3.进行聚合

全部评论

相关推荐

09-29 00:03
门头沟学院 Java
点赞 评论 收藏
分享
10-13 13:49
南京大学 财务
饿魔:笑死我了,你简直是个天才
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务