⭐题解 | 输出播放量最高的视频

输出播放量最高的视频

https://www.nowcoder.com/practice/9e9cb264e1f64e28846975d5a32ba8e4

WITH step1 AS (
    SELECT 
        a.cid,
        a.id,
        -- 核心:统计 a 的开始时间,被多少个人的观看区间包含
        SUM(IF(a.start_time BETWEEN b.start_time AND b.end_time, 1, 0)) AS cnt
    FROM play_record_tb a
    LEFT JOIN play_record_tb b 
        ON a.cid = b.cid  -- 只和同一个视频的记录匹配
    GROUP BY a.id, a.cid
),
step2 AS (
    SELECT 
        cid,
        MAX(cnt) AS max_peak_uv  -- 每个视频最大同时在线人数
    FROM step1
    GROUP BY cid
)
SELECT 
    cid,
    ROUND(CAST(max_peak_uv AS FLOAT), 3) AS max_peak_uv
FROM step2
ORDER BY max_peak_uv DESC
LIMIT 3;

这个题考察的是同一时刻在线的最大人数,好复杂,得多看几遍

全部评论

相关推荐

05-04 17:20
武汉大学
已注销:技术栈删了,让ai把你的项目丰富化,干的活太少了,像是写了个demo,起码一个项目四点重要内容,内容用技术栈描述,取得了什么进展,简历大部分都留给项目,其他的压缩
如何写一份好简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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