BigQuery:查询重复的字段

时间:2017-04-27 09:36:57

标签: google-bigquery

我正在尝试使用以下查询来获取事件名称等于的行:EventGamePlayed,EventGetUserBasicInfos或EventGetUserCompleteInfos

select *
from [com_test_testapp_ANDROID.app_events_20170426]
where event_dim.name in ("EventGamePlayed", "EventGetUserBasicInfos", "EventGetUserCompleteInfos");

我收到以下错误:无法查询重复字段event_dim.name和user_dim.user_properties.value.index的交叉产品。

是否可以通过不平坦的结果使其工作? 另外,我不确定为什么错误在讨论“user_dim.user_properties.value.index”字段。

1 个答案:

答案 0 :(得分:3)

错误是由SELECT *引起的,其中包括所有列。而不是使用旧版SQL,请使用standard SQL尝试此操作,这对于重复的字段交叉产品没有这个问题:

#standardSQL
SELECT *
FROM com_test_testapp_ANDROID.app_events_20170426
CROSS JOIN UNNEST(event_dim) AS event_dim
WHERE event_dim.name IN ("EventGamePlayed", "EventGetUserBasicInfos", "EventGetUserCompleteInfos");

您可以在Working with Arrays topic中详细了解如何使用重复的字段/数组。如果您习惯使用旧版SQL,则可以在migration guide中阅读BigQuery中旧版和标准SQL之间的差异。