У меня есть данные, которые выглядят примерно так:
Я хочу добавить столбец, содержащий время начала сеанса, в котором произошло каждое событие, чтобы результат выглядел примерно так:
Столбец session_start_time
основан на событии session_start
.
Я пробовал использовать разделы в аналитических функциях, но для этого мне нужны одинаковые значения в каждой строке для начала, и если бы они у меня были, я бы решил свою проблему.
Я также пробовал FIRST_VALUE
с оконной функцией, но мне не удалось извлечь только те события, где event_name
- "начало_сессии", потому что я не вижу способа фильтрации внутри оконных функций.
Как добиться этого с помощью стандартного SQL в BigQuery?
Ниже приведен образец запроса, который включает образцы данных:
WITH user_events AS (
SELECT
1 AS user_id,
'session_start' AS event_name,
0 AS event_time
UNION ALL SELECT 1, 'video_play', 2
UNION ALL SELECT 1, 'ecommerce_purchase', 3
UNION ALL SELECT 1, 'session_start', 100
UNION ALL SELECT 1, 'video_play', 105
)
SELECT
user_id,
event_name,
event_time
FROM
user_events
ORDER BY
event_time