在 Google Bigquery 中查询自定义维度

Querying customDimensions in Google Bigquery

谁能解释一下如何在 bigquery 中查询 customDimensions?

我的查询使用一个简单的 where 子句,即

SELECT COUNT(DISTINCT fullVisitorId)
    FROM GA_SESSION
     WHERE hits.customDimensions.index = 4
     AND hits.customDimensions.value = 'variable1'
    AND hits.page.pagePath LIKE '%something%';

但是现在当我尝试进行聚合时,或者如果我尝试 EXACT_COUNT_DISTINCT 而不使用分组依据,我会收到一个错误,即

SELECT date, COUNT(DISTINCT fullVisitorId)
FROM GA_SESSION
 WHERE hits.customDimensions.index = 4
 AND hits.customDimensions.value = 'variable1'
AND hits.page.pagePath LIKE '%something%'
group by date

错误是: 查询失败 错误:无法查询重复字段customDimensions.index和hits.customDimensions.index的叉积。

这些是重复字段,需要FLATTEN才能查询。

FLATTEN 将重复字段转换为可选字段。给定一个重复字段具有多个值的记录,FLATTEN 将其展开为多个记录,(以前)重复字段的每个值一个记录;任何非重复的字段都会重复以填写形成的每条新记录。 FLATTEN 删除一层嵌套。

阅读更多关于 FLATTEN

您需要将查询重写为:

SELECT .... FROM FLATTEN(FLATTEN(GA_SESSION,customDimensions),hits.customDimensions)