sessions 记录了每次在线会话的开始和结束时间。求同时在线的最大会话数,以及最早达到这个最大值的时刻。
- 每个会话在线的时间是左闭右开区间
[start_ts, end_ts):开始时刻算在线,结束时刻视为已离开。所以一个会话在 t 结束、另一个在 t 开始,两者不算同时在线。 start_ts = end_ts的会话时长为 0,任何时刻都不算在线。其余会话都有end_ts > start_ts,没有 null。- 同一用户的多个会话分别计数(数的是会话,不是去重用户)。
first_ts:在线数第一次等于最大值的那个时刻(一定是某个会话的开始时刻)。最大值出现过多次时,取最早的一次。
输入
sessions(session_id, user_id, start_ts, end_ts):start_ts、end_ts为 datetime
输出
一行,列为 max_online(整数)、first_ts(datetime)。