如何在BigQuery中选择多个自定义Firebase事件参数?

Luk*_*ške 10 firebase google-bigquery firebase-analytics

我将Firebase事件导出到BigQuery,现在我正在尝试从某个事件中选择两个参数.以下是选择一个参数的查询:

select event_dim.params.value.int_value as level_id
from [com_company_appname_ANDROID.app_events_20161210]
where event_dim.name = "level_replays_until_first_victory" and  event_dim.params.key = "level_id"
Run Code Online (Sandbox Code Playgroud)

两个参数都是int值,第一个参数的名称是level_id,第二个参数是count.我想要显示的是level_id第一列和count第二列.

Mik*_*ant 12

下面将使用BigQuery Standard SQL

SELECT 
  (SELECT params.value.int_value FROM x.params 
                                 WHERE params.key = 'level_id') AS level_id,
  (SELECT params.value.int_value FROM x.params 
                                 WHERE params.key = 'count') AS count
FROM `com_company_appname_ANDROID.app_events_20161210`, UNNEST(event_dim) AS x
WHERE x.name  = 'level_replays_until_first_victory'
Run Code Online (Sandbox Code Playgroud)

如果您遇到旧版SQL,请参阅从旧版SQL迁移


MSq*_*are 8

我喜欢以前的解决方案!这是我提出的同样问题的替代解决方案.我欢迎评论哪种解决方案更有效/更便宜以及为什么.

SELECT event_param1.value.int_value AS level_id, 
event_param2.value.int_value AS count
FROM `com_company_appname_ANDROID.app_events_20161210`,
UNNEST(event_dim) event,
UNNEST(event.params) as event_param1,
UNNEST(event.params) as event_param2
WHERE event.name = 'level_replays_until_first_victory'
AND event_param1.key = 'level_id'
AND event_param2.key = 'count'
Run Code Online (Sandbox Code Playgroud)