gpt4 book ai didi

mysql - sql中的 session 时间计算

转载 作者:行者123 更新时间:2023-11-29 07:33:21 24 4
gpt4 key购买 nike

我在 mysql 中有一个事件表,其中包含两列:UserId、EventTime(datetime)。我需要为每个 UserId 计算两件事:

  1. session 数
  2. session 时长总和

session 结束定义为 2 分钟内该用户没有任何事件。

如何编写这样的查询?

例如,对于附图中的这个用户, session 数为 2, session 时长的总和为 2 分 34 秒

enter image description here

最佳答案

这是 MySQL 的一个痛点。一种方法使用相关子查询来识别开始,然后使用变量为 session 分配一个数字:

select e.*,
(@s := if(@u <> userid or eventtime > prev_et + interval 2 minute, @s + 1
if(@u := userid, @s, @s)
)
) as session_id
from (select e.*,
(select max(e2.eventtime) from events e2 where e2.userid = e.userid and e2.eventtime < e.eventtime
) as prev_et
from events e
order by userid, eventtime
) e cross join
(select @u := 1, @s := 0) params;

关于mysql - sql中的 session 时间计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50036755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com