sql - 使用 Stitch 进行 Shopify 集成的简单 BigQuery 连接错误
问题描述
使用 Stitch 数据集成在 BigQuery 中编写了以下内容,以从 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
在 [36:7] 内部未找到错误 名称 product_id
解决方案
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、Flattening arrays、Join Types。
推荐阅读
- android - 如何正确请求使用附近服务的权限?
- php - Laravel 在 DB where('week', $week) 和 where('user_id', $user_id) 中查找 id
- pyqt5 - QTableView中可调整大小的列标题在pyqt5中不起作用
- bots - Discord.py - 无法尝试/除了 403:用户不接受 DM
- python - 使用 python-dataframes 将 200 万行插入到 timscaldb
- c# - Unity 停止响应基于网格的顶点数
- azure-devops - 创建矩阵小部件
- jquery - 如果文件未上传,Jquery Validate 会出错
- image - 我该如何定位
- excel - 我试图找到“1”的位置并在一个范围内找到下一个“1”