题解 | #牛客直播开始时各直播间在线人数#

牛客直播开始时各直播间在线人数

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

# 时间:4/16 11:00 ~ 

# 明确问题:统计的是19:00 时刻的在线人数!
# 方法:maybe sum()over()进行累计统计  (no) 只需要筛选保留符合条件时间段的数据
# 不涉及
# 字段:course_id、course_name、online_num


# tb1:筛选时间段包含了19:00的数据\
with tb1 as(
    select distinct user_id , course_id ,course_name,course_datetime
    from attend_tb left join course_tb using(course_id)
    # where in_datetime =< course_datetime and out_datetime >= course_datetime
    where course_datetime between in_datetime and out_datetime
)

# tb2:聚合输出结果
select course_id,course_name,count(user_id) as online_num
from tb1
group by course_id,course_name

# 虽然这题不涉及累加统计最大在线人数
# 但是好像也可以用先标记后累加这种方式求解。
# 复习一下知识点:
# ① 标记进出uv:先设定进入的uv时刻为1,退出的uv时刻为-1【union all】
# ② 接着用进行分组累积求和,获取所有时刻的累计人数【sum()over(),按照文章id或直播间id进行分组,time和uv进行排序】

全部评论

相关推荐

白火同学:先说结论,对于一份实习简历来说,整体还是挺不错的,技术深度和广度都到位,找到一份中小厂的实习没啥问题。 再说说能优化的点吧。 1、量化结果,项目中很多工作量化一下结果给面试官的感受会更直观一些,也能体现你对应用该项技术的理解(在众多技术为什么要用它,运行性能或者说开发效率往往是一大考虑指标;而不是说大家做这种功能都用它,所以我用它)。 2、突出亮点,项目中可以从“工作职责”择一些“个人亮点”另写一块,优先去写开发过程中遇到的xx问题,使用xx技术达到xx效果,针对性去写一些疑杂难的功能,能带出你个人思考和解决的过程。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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