题解 | 每类视频近一个月的转发量/率

每类视频近一个月的转发量/率

https://www.nowcoder.com/practice/a78cf92c11e0421abf93762d25c3bfad

WITH latest_date AS (
    SELECT MAX(start_time) AS max_date
    FROM tb_user_video_log
),
play_info AS (
    SELECT 
        u.video_id,
        u.start_time,
        u.if_retweet,
        v.tag,
        CASE WHEN TIMESTAMPDIFF(DAY, start_time, (SELECT max_date FROM latest_date)) < 30 THEN 1 ELSE 0 END AS recent_play -- 标记近三十天的播放
    FROM tb_user_video_log u
    LEFT JOIN tb_video_info v
    ON u.video_id = v.video_id
)

SELECT 
    tag,
    SUM(if_retweet) AS retweet_cnt,
    ROUND(SUM(if_retweet) / SUM(recent_play), 3) AS retweet_rate
FROM play_info
WHERE TIMESTAMPDIFF(DAY, start_time, (SELECT max_date FROM latest_date)) < 30
-- 一定要加这个条件,不然SUM(if_retweet)计算的是全部时间的转发数!!
GROUP BY tag
ORDER BY retweet_rate DESC
全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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