Ошибка простого присоединения BigQuery при использовании Stitch для интеграции Shopify - PullRequest
0 голосов
/ 01 апреля 2020

Написал следующее в BigQuery, используя интеграцию данных Stitch для извлечения таблиц из Shopify. Довольно просто, но я незнаком с вложенностью, которая, как я подозреваю, может отбросить мой запрос.

Любая помощь будет высоко оценена. Запрос и ошибка ниже:

Запрос

SELECT distinct
order_number
,so.created_at
,buyer_accepts_marketing
,currency
,value. sku
,value. vendor
,value. variant_title
,value. gift_card
,value. 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
CROSS JOIN UNNEST(line_items)

left join

(SELECT distinct
created_at
,id
,product_type
,title
,value.sku
,value.fulfillment_service
,value.inventory_quantity
FROM `shopifytest-272721.testconn.products` 
CROSS JOIN UNNEST(variants)) as sp 

on so.product_id = sp.id 
and so.created_at = sp.created_at

group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

Ошибка Имя product_id не найдено внутри, поэтому на [36: 7]

1 Ответ

0 голосов
/ 04 апреля 2020

В первом выборе у вас есть 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 , Уплощение массивов , Типы соединения .

...