Как добавить текущее время сеанса к каждому событию в BigQuery?

У меня есть данные, которые выглядят примерно так:

входные данные

Я хочу добавить столбец, содержащий время начала сеанса, в котором произошло каждое событие, чтобы результат выглядел примерно так:

желаемые выходные данные

Столбец 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

person willem-h    schedule 18.06.2018    source источник