同时在线人数问题

现有各直播间的用户访问记录表(live_events)如下,表中每行数据表达的信息为,一个用户何时进入了一个直播间,又在何时离开了该直播间。

user_id (用户id) live_id (直播间id) in_datetime (进入直播间的时间) out_datetime (离开直播间的时间)
100 1 2021-12-1 19:30:00 2021-12-1 19:53:00
100 2 2021-12-1 21:01:00 2021-12-1 22:00:00
101 1 2021-12-1 19:05:00 2021-12-1 20:55:00

现要求统计各直播间最大同时在线人数,期望结果如下:

live_id max_user_count
1 4
2 3
3 2
SELECT
  live_id,
  MAX(user_count) max_user_count
FROM (SELECT
  live_id,
  SUM(user_change) OVER (PARTITION BY live_id ORDER BY event_time) user_count
FROM (SELECT
  user_id,
  live_id,
  in_datetime event_time,
  1 user_change
FROM live_events
UNION
SELECT
  user_id,
  live_id,
  out_datetime event_time,
  -1 user_change
FROM live_events) a) b
GROUP BY live_id