В настоящее время я работаю с данными Google Analytics в «Большом запросе», и мне еще только предстоит уяснить, как написать запрос для получения агрегированных данных по событиям из одного сеанса.Я искал вокруг, чтобы найти что-то, что могло бы работать, но не смог получить это до сих пор.По сути, так выглядит таблица (значительно упрощенная):
UserID | event_name | event_timestamp
--------------------------------------
1 | login | 1543171146125000
1 | other event| 1543171155329000
1 | other event| 1543171155341001
1 | login | 1543171157796003
1 | other event| 1543171160541000
2 | login | 1543171157796003
2 | other event| 1543171177531000
Теперь я хочу агрегировать данные по сеансу пользователя AND, тогда как сеанс определяется как все события, пока не отобразится другое событие входа в систему.для этого пользователя.Я предполагаю, что мне нужно придумать дополнительное поле "сеанс", которое в основном всегда показывает новый идентификатор, когда встречается логин event_name для текущего агрегированного идентификатора пользователя.
Так, например, в этом случае, если я хочу иметь агрегированный счетчик событий, результирующая таблица будет выглядеть примерно так:
UserID | session | EventCount
---------------------------
1 | 1 | 3
1 | 2 | 2
2 | 1 | 2
Я предполагаю, что есть некоторыеподзапрос, который я мог бы использовать, чтобы получить это волшебное «сессионное» поле, что-то вроде:
SELECT UserID, session, COUNT(event_name) as EventCount
FROM (Insert Magical Subquery here)
GROUP BY UserID, session
Есть идеи, как это можно сделать?Это кажется простой вещью, но я просто не могу понять это.