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

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

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

WITH schedule_user AS (
    SELECT uid, artical_id, in_time as tt, 1 AS UV
    FROM tb_user_log
    UNION ALL
    SELECT uid, artical_id, out_time as tt, -1 AS UV
    FROM tb_user_log
),
t2 as (
    select artical_id, tt,sum(UV) over (partition by artical_id order by tt,UV desc) as max_uv
    from schedule_user
)



select artical_id,
        max(max_uv) as max_uv
from t2
where artical_id<>0
group by artical_id
order by max_uv desc;
  1. 统计分析人流量时候使用Union all 可以把相同用户的操作看作是独立事件
  2. 窗口函数 SUM 窗口函数是说每个文章的总流量是由按照时间和从大到小的UV来累加执行
sum(UV) over (partition by artical_id order by tt,UV desc)

全部评论

相关推荐

07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
07-10 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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