BigQuery 如何查询嵌套字段

use*_*306 2 google-bigquery

我刚刚开始使用 BigQuery 来探索公司的 GA 会话数据。experimentId我正在尝试生成一个查询,该查询将允许我为已传递给 GA 的每个生成计数。

存储experimentIdhits.experiment.experimentId嵌套字段。到目前为止,我有以下查询,但必须执行左连接才能获取此信息似乎效率低下。如何针对嵌套在另一个嵌套数组中的变量优化此查询?

SELECT
  e.experimentId,
  count(*)
FROM
  `project-name.IDNUM.ga_sessions_20170527`,
  UNNEST(hits) AS hits
LEFT JOIN UNNEST(hits.experiment) as e
GROUP BY e.experimentId
Run Code Online (Sandbox Code Playgroud)

Wil*_*uks 6

您可以使用CROSS JOIN未嵌套字段再次使用该操作hits

SELECT
  e.experimentId,
  count(*)
FROM
  `project-name.IDNUM.ga_sessions_20170527`,
  UNNEST(hits) AS hits,
  UNNEST(hits.experiment) as e
GROUP BY e.experimentId
Run Code Online (Sandbox Code Playgroud)

您还可以在BQ 文档中找到一些有关如何处理重复字段(数组)的示例以及一系列不同的技术,这些技术将帮助您进行想要在 BQ 中运行的几种类型的分析。