gpt4 book ai didi

MySQL按时间段分组

转载 作者:行者123 更新时间:2023-11-30 00:59:15 25 4
gpt4 key购买 nike

我有一个具有以下架构的事件日志:

visitor_id, metadata, timestamp

第一个字段是访问者 ID,第二个字段是给定事件的一些元数据,最后一个字段是事件发生时的 unix 时间戳。

现在,我想从此日志中识别各个 session 。那是;我想对每个访问者的所有行进行分组,其中时间戳与同一访问者的前一行或后一行的时间戳不再相隔 x 秒(例如 20*60 为 20 分钟)。

如何才能做到这一点?

最佳答案

您可以创建类似于自定义组的内容,如下所示:

SELECT
t.visitor_id,
MIN(t.timestamp),
MAX(t.timestamp)
FROM (
SELECT
IF(@lt < l.`timestamp` - 60*20 OR l.visitor_id != @lv, @g := @g + 1, @g) as g,
@lv := l.visitor_id,
@lt := l.`timestamp`,
l.*
FROM your_log l
JOIN (SELECT @g := 1, @lt = 0, @lv = NULL) as init
ORDER BY l.visitor_id, l.`timestamp`
) as t
GROUP BY t.visitor_id, g

关于MySQL按时间段分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284482/

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