Средняя сумма покупок за сеанс на пользователя

По следующему запросу можно получить среднюю сумму средств, потраченных пользователем за сеанс. Учитываются только те сеансы, когда пользователи что-то купили.

SELECT
  user_pseudo_id,
--- Подсчитываем количество уникальных сессий пользователей
  COUNT(
      DISTINCT(SELECT event_param.value.int_value FROM UNNEST(event_params) AS event_param WHERE key = 'ga_session_id')) AS session_count,
--- Считаем среднее значение выручки на каждого пользователя
  ROUND(AVG(
--- Ищем сумму(value) потраченную пользователем в одном из столбцов 
      (SELECT COALESCE(event_param.value.int_value, event_param.value.float_value, event_param.value.double_value)
        FROM UNNEST(event_params) AS event_param WHERE key = 'value')),2) AS avg_spend,
FROM
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE event_name = 'purchase' AND _TABLE_SUFFIX BETWEEN '20201101' AND '20210131'
GROUP BY
 user_pseudo_id

В результате получаем список пользователей, количество сессий и если сессий было несколько, то среднее значение потраченной им суммы на покупки в магазине.
Made on
Tilda