BigQuery选择多个键值

7

在 Firebase 中导出到 BigQuery 的自定义事件中,可以存在多个键值参数。我似乎无法想出如何使用“标准 SQL”选择其中多个参数。

如何将msg和succes的值(string_value和int_value)投影到一个记录中


我理解问题需要简明扼要、完整且可验证,才能为Stackoverflow及其用户增加价值。然而,针对该主题的现有问题(我首先自然地搜索了)过于庞大和复杂。我真正想知道的只是如何在BigQuery维度中提取多个键值参数。Elliott Brossard的回答对我非常有效,相信对其他人也同样适用。 - Casper Bang
非常感谢表模式/示例数据的截图!非常易于阅读。 - hubatish
1个回答

7
假设您想选择与firebase_event_origin对应的string_value和与firebase_screen_id相关联的int_value,以获取所有control_reading事件。您可以将查询表示为:
#standardSQL
SELECT
  (SELECT param.value.string_value
   FROM UNNEST(event_dim.params) AS param
   WHERE param.key = 'firebase_event_origin') AS firebase_event_origin,
  (SELECT param.value.int_value
   FROM UNNEST(event_dim.params) AS param
   WHERE param.key = 'firebase_screen_id') AS firebase_screen_id
FROM `your_dataset.your_table_*`
CROSS JOIN UNNEST(event_dim) AS event_dim
WHERE _TABLE_SUFFIX BETWEEN '20170501' AND '20170503' AND
  event_dim.name = 'control_reading';

所以关键是在具有子查询的维度上使用CROSS JOIN UNNEST。非常有效,谢谢! - Casper Bang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接