在Redshift中,如何找到基于时间的事件的集群?

我有一个看起来像这样的表

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个事件的集群,那么我仍然只希望查询返回单个记录
wenpc007 回答:在Redshift中,如何找到基于时间的事件的集群?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3157631.html

大家都在问