我使用了相同的逻辑来取消hit.eCommerceAction的嵌套,但它不像其他字段那样工作。对这个问题有什么帮助吗?另外,max(if())函数是用来获取两个hits.customeDimenison.value的正确函数吗?
SELECT
Date
,COUNT(DISTINCT FULLVISITORID)
, product.v2ProductCategory
,max(if(customDimensions.index=2, customDimensions.value,null)) as dest
,max(if(customDimensions.index=21, customDimensions.value,null)) as pax
,eCommerceAction.action_type
,product.v2ProductName
FROM `table` as t
CROSS JOIN UNNEST(hits) AS hit
CROSS JOIN UNNEST(hit.customDimensions) AS customDimensions
CROSS JOIN UNNEST(hit.eCommerceAction) as eCommerceAction
CROSS JOIN UNNEST(hit.product) AS product
GROUP BY
Date
,product.v2ProductCategory
,eCommerceAction.action_type
,product.v2ProductName我得到的错误代码是Error: UNNEST中引用的值必须是数组。UNNEST包含类型为STRUCT的表达式
发布于 2017-01-11 09:03:22
我可以用一个更简单的查询重现这个错误:
#standardSQL
SELECT DISTINCT hit.eCommerceAction.action_type
FROM `73156703.ga_sessions_20170109` t
, UNNEST(hits) hit
, UNNEST(hit.customDimensions) customDimensions
, UNNEST(hit.eCommerceAction) as eCommerceAction这里的问题是eCommerceAction不是REPEATED记录,因此没有UNNEST的数组。
固定查询:
#standardSQL
SELECT DISTINCT hit.eCommerceAction.action_type
FROM `ga_sessions_20170109` t
, UNNEST(hits) hit
, UNNEST(hit.customDimensions) customDimensionshttps://stackoverflow.com/questions/41580589
复制相似问题