有如下数据记录直播平台主播上播及下播时间,根据该数据计算出平台每分钟最大直播人数。
查询每分钟最大在线人数,这里处理逻辑基本和最高峰在线人数是一致的,但有一个问题,如果某一分钟内无任何操作记录,则不会出现该分钟的数据,我们就统计不到。所以这里额外考察了生成数据;
1.首先对原始数据进行处理,生成主播上下播的日志数据,同时增加人数变化字段,主播上播为1,主播下播-1。新数据包含 user_id,action_time,change_cnt
查询结果
2.生成0~24*60-1条记录数据
查询结果,这里仅显示前10行数据
3.根据2生成每分钟一条记录的心跳记录,心跳记录change_cnt= 0 ,代表没有主播上播,也没有主播下播。
查询结果,这里仅显示前10行数据
4.汇总所有数据之后,对change_cnt累积求和,然后求出每分钟的最大值即可