Google bigquery Google Big Query无法访问类型为ARRAY的值上的字段页
我正在努力获取合格的鉴证人数量。qulifiedVisitor将是在网站上搜索“苹果”的用户 但我得到了这个错误:Google bigquery Google Big Query无法访问类型为ARRAY的值上的字段页,google-bigquery,Google Bigquery,我正在努力获取合格的鉴证人数量。qulifiedVisitor将是在网站上搜索“苹果”的用户 但我得到了这个错误: Cannot access filed page on a value with type ARRAY<STRUCT<hitNumber INT64,timeITN64, time64,..>> 我尝试了其他人以前提供的方法,例如使用unesthits或exist。然而,它仍然不起作用 如果你有任何想法,请告诉我 .我想你想要这样的东西: SELECT
Cannot access filed page on a value with type ARRAY<STRUCT<hitNumber INT64,timeITN64, time64,..>>
我尝试了其他人以前提供的方法,例如使用unesthits或exist。然而,它仍然不起作用
如果你有任何想法,请告诉我
.我想你想要这样的东西:
SELECT
COUNT(DISTINCT fullVisitorId) AS QualifiedVisitors
FROM `dataset.tablename`, UNNEST(hits) AS hits
WHERE hits.page.pagePath = '/apple';
重要的部分是对UNNEST的结果进行别名处理。在您共享的屏幕截图中,您缺少别名,因此hits.page.pagePath仍然引用原始的hits列,而不是未列出的列
编辑:如果目的是在hits中至少有一个条目的pagePath为“/apple”的情况下计算总计,则可能需要使用EXISTS子句,而不是在外部范围内展平数组。比如说,
SELECT
COUNT(DISTINCT fullVisitorId) AS QualifiedVisitors,
SUM(totals.pageViews) AS TotalViews
FROM `dataset.tablename`
WHERE EXISTS (
SELECT 1 FROM UNNEST(hits) AS hit
WHERE hit.page.pagePath = '/apple');
如果这样的话,请考虑一下也要投票。我很高兴我能帮忙!如果你不介意的话,还有一个问题。我还对查找搜索苹果的用户的页面浏览量感兴趣。所以我只是使用sumtotals.pageviews来更改查询,并保持查询的其余部分不变。但它似乎工作得不好。在访问数组字段时是否也会遇到同样的错误?相反,您可能需要从UNNESTtotals中选择SUMpageviews。嗨,Elliott,谢谢您的回复。我试图从表中选择sumtotals.pageviews,unnesttotals where hits.page.pagepath='apple',但我得到一个错误代码:UNNEST中引用的值必须是数组。UNNEST包含STRUCTHi Elliott类型的表达式,我尝试了您的方法。但我得到的TotalViews比GA的TotalViews多得多。我还需要数据信息,所以我在select和groupby中添加了日期。但还是有更多的结果。