求某时刻最大在线人数
思路:做两个登入登出表,分别是登入时间 和 1, 登出时间 -1 用union all合并(因为可能有人是同时登入) , 状态字段用status表示
然后用窗口 求窗口大小为( 上无限到当前位置的, status的sum() ),即可求出, 某时刻最大在线人数
with t1 as
(select artical_id,in_time time ,
1 as status
from tb_user_log
where artical_id!=0
union all
select artical_id,out_time time ,
-1 as status
from tb_user_log
where artical_id!=0)
, t2 as
(select artical_id,
sum(status)over(partition by artical_id order by time rows between unbounded preceding and current row ) cnt
from t1
)
select artical_id,max(cnt) max_uv
from t2
group by artical_id
order by max_uv desc
;
#解题#
然后用窗口 求窗口大小为( 上无限到当前位置的, status的sum() ),即可求出, 某时刻最大在线人数
with t1 as
(select artical_id,in_time time ,
1 as status
from tb_user_log
where artical_id!=0
union all
select artical_id,out_time time ,
-1 as status
from tb_user_log
where artical_id!=0)
, t2 as
(select artical_id,
sum(status)over(partition by artical_id order by time rows between unbounded preceding and current row ) cnt
from t1
)
select artical_id,max(cnt) max_uv
from t2
group by artical_id
order by max_uv desc
;
#解题#
全部评论
相关推荐
点赞 评论 收藏
分享
Tom哥981:这份简历是“短期项目硬堆中大型系统技术”的“技术炫技式造假模板”,槽点密集到能当反面教材:
### 1. 「项目时长」和「技术密度」严重脱节,造假痕迹焊死在简历上
两个项目时长分别是**3个月、2个月**,但堆了Spring AI、Elasticsearch、MinIO、Kafka、ShardingSphere、Docker、Sentinel等近20个中大型项目才用的技术——正常情况下,光把这些中间件的文档看完+环境搭好,3个月都不够,更别说实现“AI多轮对话、分库分表、RBAC权限、大模型调用”这些功能。
说白了:你这不是“做项目”,是把“后端技术栈清单”往项目里硬塞,明摆着“只调用了API,没碰过核心逻辑”。
点赞 评论 收藏
分享
11-10 01:25
西安培华学院 运营 点赞 评论 收藏
分享
点赞 评论 收藏
分享
