题解 | 每篇文章同一时刻最大在看人数

每篇文章同一时刻最大在看人数

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

SELECT
    artical_id,
    MAX(user_cnt) AS max_uv
FROM(
    SELECT
        artical_id,
        SUM(cnt) OVER(PARTITION BY artical_id ORDER BY time, cnt DESC) AS user_cnt # 条件先记录增加
    FROM(
        SELECT
            artical_id,
            in_time AS time,
            1 AS cnt
        FROM tb_user_log
        WHERE artical_id != 0
        UNION ALL # 一定得UNION ALL, UNION会自动去除重复行
        SELECT
            artical_id,
            out_time AS time,
            -1 AS cnt
        FROM tb_user_log
        WHERE artical_id != 0 # 这个条件不明显
    ) AS tb1
) AS tb2
GROUP BY artical_id
ORDER BY max_uv DESC # 条件降序
# 其余都挺简单的

全部评论

相关推荐

牛马人的牛马人生:500一天吗?香麻了
投递字节跳动等公司6个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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