WITH
product AS (
--- Выбираем конкретный продукт - "название продукта" или его "ид"
SELECT 'Google Navy Speckled Tee' AS selected_product
),
--- Получаем список пользователей и приобретенных ими товаров
purchase_events AS (
SELECT user_pseudo_id,items
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20210131' AND event_name = 'purchase'
),
--- Достам название товара из поля "item." типа RECORD с помощью UNNEST для каждого уникального user_id
product_buyers AS (
SELECT DISTINCT user_pseudo_id
FROM
product,
purchase_events,
UNNEST(items) AS items
WHERE
-- вместо название, можем использовать ид товара
items.item_name = selected_product
)
--- Суммируем количество купленных товаров для пользователей купивших 'Google Navy Speckled Tee'
SELECT
items.item_name AS item_name,
SUM(items.quantity) AS item_quantity
FROM
product,
purchase_events,
UNNEST(items) AS items
WHERE
user_pseudo_id IN (SELECT user_pseudo_id FROM product_buyers)
-- вместо название, можем использовать ид товара
AND items.item_name != selected_product
GROUP BY item_name
ORDER BY item_quantity DESC