BigQuery - 在BigQuery中选择多个产品范围的自定义维度

时间:2016-05-13 07:00:11

标签: sql google-bigquery

我正在尝试在Google BigQuery中查询多个产品范围的自定义维度。结果是这样的:

Current set of results

我想在结果中得到合并的行,如下所示:

Expected set of results

这可以通过BigQuery中的查询实现吗?

修改

请参阅我使用的现有查询:

SELECT IF(hits.product.customDimensions.index=21, hits.product.customDimensions.value, NULL) cd21,
IF(hits.product.customDimensions.index=22, 
hits.product.customDimensions.value, NULL) cd22
FROM [<table_id>.ga_sessions_20160510]
WHERE hits.product.productListName LIKE "%test%"
  AND hits.product.isImpression IS TRUE
  AND hits.product.customDimensions.index IN (21,22)

1 个答案:

答案 0 :(得分:1)

我重写了一个使用公共数据集的例子:

SELECT fullVisitorId, visitId, hits.hitNumber, hits.time,
  max(IF(hits.customDimensions.index = 1, hits.customDimensions.value, NULL)) within RECORD cd21,
  max(IF(hits.customDimensions.index = 2, hits.customDimensions.value, NULL)) within RECORD cd22,
FROM
  [google.com:analytics-bigquery:LondonCycleHelmet.ga_sessions_20130910]
WHERE
  hits.customDimensions.index IN ( 1,2 )
and fullVisitorId = '712553853382222331'

输出结果为:

+-----+--------------------+------------+----------------+-----------+-------+--------+--+
| Row | fullVisitorId      | visitId    | hits_hitNumber | hits_time | cd21  | cd22   |  |
+-----+--------------------+------------+----------------+-----------+-------+--------+--+
| 1   | 712553853382222331 | 1378804218 | 1              | 0         | Vests | Bronze |  |
+-----+--------------------+------------+----------------+-----------+-------+--------+--+
| 2   | 712553853382222331 | 1378804218 | 2              | 9611      | Vests | Bronze |  |
+-----+--------------------+------------+----------------+-----------+-------+--------+--+
| 3   | 712553853382222331 | 1378804218 | 3              | 10664     | Vests | Bronze |  |
+-----+--------------------+------------+----------------+-----------+-------+--------+--+
| 4   | 712553853382222331 | 1378804218 | 5              | 25377     | Vests | Bronze |  |
+-----+--------------------+------------+----------------+-----------+-------+--------+--+

您可能会注意到它使用WITHIN语法从同一个RECORD中读取多个条目。这样你就可以获得作用域聚合。

请注意,对于GA数据,您可能会有多次点击,如果您只想保留一行,则可能需要进一步汇总此输出。

Google Analytics小组提供了一个示例数据集,您可以使用该数据集来了解生成的数据的性质。您可以使用项目菜单(项目名称旁边的下拉菜单,切换到项目➪显示项目)添加项目google.com:analytics-bigquery,从而在BigQuery UI中将此数据添加到视图中。或者,您可以导航到BigQuery UI链接https://bigquery.cloud.google.com/project/google.com:analytics-bigquery 添加项目后,示例数据集(LondonCycleHelmet)将显示在导航面板中。它包含两个表:

  • ga_sessions_20130910
  • refunds_201309