【发布时间】:2018-04-19 05:38:39
【问题描述】:
我有以下数据:
-------------------------------------------------- -------- |用户名 |访问时间 |网络日志 |会议 | -------------------------------------------------- -------- |1 | 2018-02-05 04:01:17 | 1.2.3.4 | | |1 | 2018-02-05 04:05:00 | 1.2.3.4 | | |1 | 2018-02-05 04:40:00 | 1.2.3.4 | | |1 | 2018-02-05 07:00:14 | 1.2.3.4 | | |1 | 2018-02-05 07:50:14 | 1.2.3.5 | | |2 | 2018-02-05 08:20:20 | 1.2.3.5 | | |2 | 2018-02-05 08:35:00 | 1.2.3.5 | | |2 | 2018-02-05 08:45:20 | 1.2.3.6 | | |2 | 2018-02-05 09:35:00 | 1.2.3.6 | |目标是知道多少次 (SESSIONX) 基于 IDUSER、ACCESS_TIME、IPLOG 的用户日志。 遵循以下规则:
如果新会话的访问时间间隔超过 30 分钟(> 30 分钟)但使用相同的 iplog,则会增加 (+1)
如果使用 iplog 的用户访问不同(新),即使在 30 分钟以下(
如何使用上述规则查询会话时间顺序? ,所以输出如下
-------------------------------------------------- -------- |用户名 |访问时间 |网络日志 |会议 | -------------------------------------------------- -------- |1 | 2018-02-05 04:01:17 | 1.2.3.4 | 1 | |1 | 2018-02-05 04:05:00 | 1.2.3.4 | 1 | |1 | 2018-02-05 04:40:00 | 1.2.3.4 | 2 | |1 | 2018-02-05 07:00:14 | 1.2.3.4 | 3 | |1 | 2018-02-05 07:50:14 | 1.2.3.5 | 4 | |2 | 2018-02-05 08:20:20 | 1.2.3.5 | 1 | |2 | 2018-02-05 08:35:00 | 1.2.3.5 | 1 | |2 | 2018-02-05 08:45:20 | 1.2.3.6 | 2 | |2 | 2018-02-05 09:35:00 | 1.2.3.6 | 3 |【问题讨论】:
-
使用用户定义的变量。一个变量保存最后一个
IDUSER,另一个保存最后一个ACCESS_TIME,另一个保存最后一个IPLOG,最后一个保存SESSIONX。您可以根据当前行中的列与保存的变量的比较情况来增加或重置SESSIONX。 -
StackOverflow 不是免费的编码服务。所以希望你try to solve your own problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :) 我希望我的评论足以让您朝着正确的方向前进。
-
查看stackoverflow.com/questions/44059853/… 了解变量的类似用法。
标签: mysql sql session sequence