Google Big Query为类型为ARRAY的值提供了"无法访问字段"页面

Rac*_*hel 4 google-bigquery

我正在努力获得qulifiedVisitor计数.qulifiedVisitor将是在网站上搜索"apple"的用户.

但我收到此错误:

Cannot access filed page on a value with type ARRAY<STRUCT<hitNumber INT64,timeITN64, time64,..>>
Run Code Online (Sandbox Code Playgroud)

我尝试过其他人之前提供的方法,例如使用UNNEST(命中)或exists().但是,它仍然无法正常工作.

如果您有任何想法,请告诉我.

代码和错误的屏幕截图.

Ell*_*ard 8

我想你想要这样的东西:

SELECT
  COUNT(DISTINCT fullVisitorId) AS QualifiedVisitors
FROM `dataset.tablename`, UNNEST(hits) AS hits
WHERE hits.page.pagePath = '/apple';
Run Code Online (Sandbox Code Playgroud)

重要的部分是使结果混淆UNNEST.在您共享的屏幕截图中,您缺少别名,因此hits.page.pagePath仍然引用原始hits列而不是未列出的列.

编辑:如果打算计算其中至少有一个条目hits具有a 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');
Run Code Online (Sandbox Code Playgroud)