Получаем значения определенного события

Как видим, стандартное отображение данных сложно для понимания. У события "purchase" есть куча дополнительных параметров события, которые нам в данной задаче не нужны. Нам нужна только цифра (сумма купленных товаров в конкретный день).

Чтобы получить сумму покупок по каждому дню пишем запрос.

WITH
  u_purchase AS (
  SELECT
    event_date,
    (
    SELECT
--- Ищем первый попавшийся столбец (по событию “purchase” и параметру события “value”) в котором есть данные (число) о сумме покупки и направляем это значение в столбец "event_value"
      COALESCE(value.int_value, value.float_value, value.double_value)
    FROM UNNEST(event_params)
    WHERE key = 'value' ) AS event_value
  FROM
    `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
  WHERE
    event_name = 'purchase'
    AND _TABLE_SUFFIX BETWEEN '20201201'AND '20201207' )
--- Суммируем значения из поля "event_value" и группируем их по дате
SELECT
  event_date,
  ROUND(SUM(event_value),2) AS sum_value_purcahse
FROM u_purchase
GROUP BY event_date
ORDER BY event_date ASC
В результате получили суммарную выручку по каждому дню за неделю.
Можно упростить запрос:

SELECT event_date,
  ROUND(SUM(
    (
      SELECT COALESCE(value.int_value, value.float_value, value.double_value)
      FROM UNNEST(event_params)
      WHERE key = 'value'
    )),2)
    AS event_value
FROM
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'purchase'
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201207'
  GROUP BY event_date
  ORDER BY event_date ASC
Результат тот же, но меньше писанины.
Made on
Tilda