【发布时间】:2017-03-17 07:41:06
【问题描述】:
我使用链接到 Google BigQuery 的 Firebase Analytics 收集分析数据。
我在 BigQuery 中有以下数据(省略了不必要的列/行,数据集类似于 https://bigquery.cloud.google.com/table/firebase-analytics-sample-data:ios_dataset.app_events_20160607?tab=preview):
| event_dim.name | event_dim.params.key | event_dim.params.value.string_value |
|----------------|----------------------|-------------------------------------|
| read_post | post_id | p_100 |
| | group_id | g_1 |
| | user_id | u_1 |
| open_group | post_id | p_200 |
| | group_id | g_2 |
| | user_id | u_1 |
| open_group | post_id | p_300 |
| | group_id | g_1 |
| | user_id | u_3 |
我要查询以下数据:
- 事件名称
- 用户名
- 组 ID
我尝试了以下查询:
SELECT
event_dim.name,
FIRST(IF(event_dim.params.key = "user_id", event_dim.params.value.string_value, NULL)) WITHIN RECORD user_id,
FIRST(IF(event_dim.params.key = "group_id", event_dim.params.value.string_value, NULL)) WITHIN RECORD group_id
FROM
[xxx:xxx_IOS.app_events_20161102]
LIMIT
1000
上述查询的问题在于聚合函数FIRST 会给出错误的结果,因为带有WITHIN 修饰符的SELECT 语句将返回结果列表。 FIRST 函数只会在第一行的情况下给出正确的结果。
【问题讨论】:
标签: google-bigquery firebase-analytics