Таким образом, таблица содержит запись событий, последовательных по времени, например:
+-------------------------+--------+--------+------------+------------+
| Timestamp | id | event | variable 1 | variable 2 |
+-------------------------+--------+--------+------------+------------+
| 2019-05-17 00:00:00.000 | abc123 | event1 | variable1 | null |
| 2019-05-17 00:00:10.000 | abc123 | event2 | null | variable2 |
| 2019-05-17 00:00:15.000 | abc123 | event3 | null | null |
| 2019-05-17 00:05:00.000 | abc123 | event1 | variable1 | null |
| 2019-05-17 00:05:10.000 | abc123 | event4 | null | null |
| 2019-05-17 00:05:15.000 | abc123 | event3 | null | null |
+-------------------------+--------+--------+------------+------------+
Требуется подсчитать, сколько раз происходит определенная последовательность событий, например, event1
следует event2
, чтоследует до event3
.Таким образом, в приведенном выше примере код будет возвращать:
+--------+----------------+
| id | sequence_count |
+--------+----------------+
| abc123 | 1 |
+--------+----------------+
Последовательность event1
-> event2
-> event3
произошла один раз в наборе данных для пользователя abc123
, event1
-> event4
-> event3
последовательность не учитывается.Переменная, используемая для сокращения счетчика, также может быть переключена для получения результата:
+------------+----------------+
| variable 1 | sequence_count |
+------------+----------------+
| variable1 | 1 |
+------------+----------------+
Для целей этого запроса переменная метки времени должна рассматриваться как порядковый, а не кардинальный.Я, честно говоря, понятия не имею, с чего начать, если кто-то может помочь с основанием для этого типа запроса, я смогу построить его, чтобы извлечь из данных другие идеи, которые я хочу.