【发布时间】:2014-02-25 12:28:27
【问题描述】:
我有这个下表数据结构。 我需要找到 SESSIONS 的数量。
SESSION is :对于用户 ID,如果存在多行,则检查时间戳。如果时间戳差异小于 30,则考虑为一个会话。
+---------+----------+
|userid | timestamp|
+---------+----------+
| 1 | 10 |
| 1 | 11 |
| 1 | 55 |
| 2 | 65 |
+---------+----------+
在上面的示例中,对于 userid 1,时间戳 10 和 11 被视为单个会话。但是 (55-11 = 44) 大于 30。所以,这是另一个会话。
所以用户 ID 1 和
有 2 个会话
用户 ID 2 和 1 个会话
总共有 2+1= 3 个会话。我只需要获取这个计数。如何做到这一点?
【问题讨论】:
-
您想在 Hive 还是 MySQL 中获得答案?
-
我想要它用于蜂巢。我猜基本的想法是一样的?标记 mySql 以获得一般的 SQL 思路
-
与其他版本的 SQL 相比,Hive 非常有限。例如,它在
from子句中不提供子查询,并且有其他限制。 -
我的朋友,这里有个问题,当
userid是1你必须做这样的事情55 - 11 = 44,如果你做55 - 10是否可能,我的意思是做max(timestamp) - min(timestamp)? -
@Hamidreza :不,不能做 MAX-MIN,因为我正在跟踪连续性。