我正在努力获得qulifiedVisitor计数。 qulifiedVisitor将是搜索“apple' apple”的用户。在网站上。
但我收到此错误:
Cannot access filed page on a value with type ARRAY<STRUCT<hitNumber INT64,timeITN64, time64,..>>
我尝试过其他人之前提供的方法,例如使用UNNEST(命中)或exists()。但是,它仍然无效。
如果您有任何想法,请告诉我。
答案 0 :(得分:8)
我想你想要这样的东西:
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');