我有一个看起来像这样的表
user_id_from | user_id_to | event_time_in_microseconds
-------------+------------+---------------------------
1 | 2 | 1368770629103960
1 | 2 | 1368770629183960
2 | 1 | 1368770629203960
2 | 3 | 1368770629103980
2 | 1 | 1368770622103960
我正在寻找一个查询,该查询将为特定时间间隔内存在的每个(user_id_from,user_id_to)
对查找事件簇,这对于用户是user_id_from
还是{{1} }(例如上面的user_id_to
和(1,2)
是不同的“对”)。
输出结果如下(这是我没有仔细创建/验证的伪数据):
(2,1)
请注意,user_id_from | user_id_to | first_event_time_in_microseconds | last_event_time_in_microseconds | count_of_events
-------------+------------+----------------------------------+---------------------------------+----------------
1 | 2 | 1368770629103960 | 1368770629183960 | 2
2 | 1 | 1368770622103960 | 1368770629203960 | 2
对不会出现,因为只有一个事件。
对查询的其他一些澄清需求:
- 我想查询以处理不同的时间窗口(例如一小时,一天,一周)
- 我想根据一些最小/动态阈值(例如1个事件,10个事件)来过滤出集群
- 每个群集只希望有一行。例如,如果在给定的时间范围内有10个事件的集群,而我正在寻找至少5个事件的集群,那么我仍然只希望查询返回单个记录