Выберите указанные c поля с помощью Google BigQuery - PullRequest
0 голосов
/ 15 января 2020

Я использую Firebase Analytics с приложением. Когда я делаю:

SELECT * FROM `analytics_xxx.events_xxxxx` where event_name="level_quit" 

, он работает нормально и показывает значения этого события.

Когда я пытаюсь выбрать определенные c поля или порядок по указанному c полю, я всегда получаю синтаксическая ошибка.

Например:

SELECT level_retry FROM `analytics_xxx.events_xxxxx` where event_name="level_quit" 

Я получаю сообщение об ошибке «Нераспознанное имя: level_retry at [8: 9]»

Я не уверен, как использовать значения 'event_params.value.int_value' в запросе и почему что-то, что кажется простым, становится сложным.

Я пытаюсь добиться того, чтобы показать, на каких уровнях я получил больше всего пенсий.

Это набор результатов: enter image description here

Ответы [ 2 ]

1 голос
/ 15 января 2020

Попробуйте сделать:

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'])

Пожалуйста, дайте мне знать, если это поможет вам

0 голосов
/ 15 января 2020

Ниже для BigQuery Standard 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    
...