把每个用户的事件流切分成会话。
- 每个用户的事件按
ts升序排列。相邻两个事件的时间间隔超过 30 分钟时,后一个事件开始一个新会话;间隔恰好 30 分钟仍属于同一个会话。 - 时间完全相同的事件属于同一个会话。
- 每个用户的会话按时间先后编号,
session_no从 1 开始。 - 对每个会话输出:开始时间
start(会话内最早的ts)、结束时间end(最晚的ts)、事件数n_events。
输入
events(event_id, user_id, ts, event_type, page):输入不保证有序
输出
列为 user_id, session_no, start, end, n_events,行顺序不限。