В первом выборе у вас есть value.product_id
, но вы присоединяетесь к so.product_id = sp.id
, поле product_id
неизвестно на этом уровне, но оно может работать, если вы установите псевдоним:
value.product_id as product_id
Другое шумное поле - so.created_at
в первом запросе. Позвольте мне предложить следующую структуру для вашего запроса:
SELECT distinct
order_number
,created_at
,buyer_accepts_marketing
,currency
,value. sku
,value. vendor
,value. variant_title
,value. gift_card
,value. product_id as product_id
,customer. id
,shipping_address. province
,shipping_address. country
,shipping_address. city
,shipping_address. longitude
,shipping_address. country_code
,shipping_address. latitude
,sum(total_price_usd) as price_usd
,sum(total_price) as total_price
,sum(total_discounts) as total_discounts
FROM `shopifytest-272721.testconn.orders` as so --if line_items is contained into so:
CROSS JOIN UNNEST(so.line_items) as items
left join
(SELECT distinct
created_at
,id
,product_type
,title
,value.sku
,value.fulfillment_service
,value.inventory_quantity
FROM `shopifytest-272721.testconn.products` as p
CROSS JOIN UNNEST(p.variants)) as sp
on items.product_id = sp.id
and items.created_at = sp.created_at
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
Кроме того, поскольку вы не знакомы с вложенностью, я бы рекомендовал вам проверить UNNEST , Уплощение массивов , Типы соединения .