В Redshift, как вы можете найти кластеры событий, основанных на времени? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть таблица, которая выглядит следующим образом:

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 или user_id_to (например, (1, 2) и (2, 1) выше - это разные "пары").

Вывод будет выглядеть примерно так (это фиктивные данные, которых у меня нет 't создано тщательно / проверено) this:

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

Обратите внимание, что пара (2, 3) не отображается, поскольку существует только одно событие.

Некоторые другие уточняющие потребности для запроса:

  • Я хотел бы сделать запрос для обработки разных временных окон (например, один час, один день, одна неделя)
  • Я хотел бы отфильтровать кластеры на основе некоторого минимума/ динамический порог (например, 1 событие, 10 событий)
  • Я хочу только одну строку для каждого кластера. Например, если в заданный период времени был кластер с 10 событиями, и я ищу кластеры с минимум 5 событиями, я все равно хотел бы, чтобы запрос возвращал только одну запись
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...