将旧版 SQL 转换为标准 SQL - 增强型电子商务
Posted
技术标签:
【中文标题】将旧版 SQL 转换为标准 SQL - 增强型电子商务【英文标题】:Converting Legacy SQL to Standard SQL - Enhannced Ecommerce 【发布时间】:2019-08-28 01:43:14 【问题描述】:我绝不是编码员,所以我尝试过,但在这方面摔倒了。
我想使用 Google 的 Google Analytics Big Query Cookbook 中的这个查询
购买产品 A(增强型电子商务)的客户购买的产品
我已经粘贴了下面的代码
进入标准 SQL。
我尝试了几次,但都摔倒了,没有
提前谢谢你 约翰
SELECT hits.product.productSKU AS other_purchased_products,
COUNT(hits.product.productSKU) AS quantity
FROM (
SELECT fullVisitorId, hits.product.productSKU, hits.eCommerceAction.action_type
FROM TABLE_DATE_RANGE([bigquery-public-data:google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-04-01'), TIMESTAMP('2017-04-20'))
)
WHERE fullVisitorId IN (
SELECT fullVisitorId
FROM TABLE_DATE_RANGE([bigquery-public-data:google_analytics_sample.ga_sessions_],
TIMESTAMP('2017-04-01'), TIMESTAMP('2017-04-20'))
WHERE hits.product.productSKU CONTAINS 'GGOEYOCR077799'
AND hits.eCommerceAction.action_type = '6'
GROUP BY fullVisitorId
)
AND hits.product.productSKU IS NOT NULL
AND hits.product.productSKU !='GGOEYOCR077799'
AND hits.eCommerceAction.action_type = '6'
GROUP BY other_purchased_products
ORDER BY quantity DESC;
【问题讨论】:
你得到了什么结果?有什么错误吗?您期待什么结果? 【参考方案1】:以下是 BigQuery 标准 SQL 中的纯等价物(没有任何优化、改进等 - 只是从旧版到标准的纯转换)
SELECT productSKU AS other_purchased_products, COUNT(productSKU) AS quantity
FROM (
SELECT fullVisitorId, prod.productSKU, hit.eCommerceAction.action_type
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST(hits) hit, UNNEST(hit.product) prod
WHERE _TABLE_SUFFIX BETWEEN '20170401' AND '20170420'
)
WHERE fullVisitorId IN (
SELECT fullVisitorId
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST(hits) hit, UNNEST(hit.product) prod
WHERE _TABLE_SUFFIX BETWEEN '20170401' AND '20170420'
AND prod.productSKU LIKE '%GGOEYOCR077799%'
AND hit.eCommerceAction.action_type = '6'
GROUP BY fullVisitorId
)
AND productSKU IS NOT NULL
AND productSKU !='GGOEYOCR077799'
AND action_type = '6'
GROUP BY other_purchased_products
ORDER BY quantity DESC
显然产生与旧版本完全相同的结果
【讨论】:
非常感谢,真的很有帮助。再次感谢您。以上是关于将旧版 SQL 转换为标准 SQL - 增强型电子商务的主要内容,如果未能解决你的问题,请参考以下文章
标准 sql 中的 bigquery 旧版 sql POSITION() 函数
如何将 ABS(HASH(...)) 从传统 sql 转换为标准 SQL
无法在 Google BigQuery 中将此旧版 SQL 转换为标准 SQL