我正在通过应用程序使用Firebase分析。当我这样做时:
SELECT * FROM `analytics_xxx.events_xxxxx` where event_name="level_quit"
它工作正常,并显示事件值。
当我尝试选择特定字段或按特定字段排序时,总是会出现语法错误。
例如:
SELECT level_retry FROM `analytics_xxx.events_xxxxx` where event_name="level_quit"
我收到一个错误消息“无法识别的名称:[8:9]的level_retry”
我不确定如何在查询中使用'event_params.value.int_value'值,以及为什么看起来简单的事情变得越来越复杂。
我想要达到的目标是显示我退休最多的级别。
尝试做:
SELECT t.* EXCEPT (event_params), struct(e) as event_params FROM `analytics_xxx.events_xxxxx` t, t.even_params e
WHERE e.key in UNNEST(['level', 'level_retry'])
请让我知道是否对您有帮助
下面是BigQuery标准SQL的内容>>
#standardSQL SELECT * EXCEPT(event_name, event_params), (SELECT value.int_value FROM t.event_params WHERE key = 'level') AS level, (SELECT value.int_value FROM t.event_params WHERE key = 'level_retry') AS level_retry FROM `project.analytics_xxx.events_xxxxx` t WHERE event_name = 'level_quit'
对于您问题中的示例-结果如下
Row event_date event_timestamp level level_retry
1 20200114 1579008893128003 20 0