2017-01-24 2 views
0

Я намерен получить от событий, которые у меня есть в приложениях stat для большинства воспроизводимых аудио в статье. В случае, если я отправлю articleId и аудиодиск, который был воспроизведен.Запросить несколько параметров в нескольких таблицах с помощью TABLE_DATE_RANGE для Firebase Analytics

Я хочу, чтобы получить в качестве строки результата, как это упорядоченное по числу вхождений:

| ID of the article | ID of the audio | number of occurrences 

Поскольку экспорт firebase аналитика в BigQuery в дневниковой основе, и я хочу, чтобы эти события в месяц я создал запрос, который берет значения из нескольких таблиц и смешали его с информацией, которую я нашел в потоке this.

Полученный запрос:

SELECT 
    (SELECT params.value.int_value FROM x.params 
           WHERE params.key = 'Article_ID') AS Article_ID, 
    (SELECT params.value.int_value FROM x.params 
           WHERE params.key = 'Audio_ID') AS Audio_ID, 
    COUNT(event_dim.name) as Number_Of_Plays 
FROM 
TABLE_DATE_RANGE([project-id:my_app_id.app_events_], DATE_ADD(CURRENT_TIMESTAMP(), -30, 'DAY'), CURRENT_TIMESTAMP()), UNNEST(event_dim) AS x 
WHERE event_dim.name = 'Audio_Play' 
GROUP BY Audio_ID, Article_ID 
ORDER BY Number_Of_Plays desc 

К сожалению, этот запрос не разобран правильно дал мне ошибку:

Error: Table name cannot be resolved: dataset name is missing. 
RUN QUERY 

Я довольно уверен, что проблема связана с запросом нескольких таблиц в но не знаете, как это исправить. Благодарю.

ответ

1

Другой ответ, который вы ссылаетесь, использует StandardSQL, и вы пытаетесь использовать TABLE_DATE_RANGE, который доступен только в LegacySQL.

Это запрос в стандарте SQL, что позволяет вам несколько таблиц

#standardSql 
SELECT 
    (SELECT params.value.int_value FROM x.params 
           WHERE params.key = 'Article_ID') AS Article_ID, 
    (SELECT params.value.int_value FROM x.params 
           WHERE params.key = 'Audio_ID') AS Audio_ID, 
    COUNT(event_dim.name) as Number_Of_Plays 
FROM 
`project-id:my_app_id.app_events_*`, UNNEST(event_dim) AS x 
WHERE _TABLE_SUFFIX BETWEEN cast(DATE_ADD(current_date(), INTERVAL -30 DAY) as string) AND cast(current_date() as string) 
    AND event_dim.name = 'Audio_Play' 
    GROUP BY Audio_ID, Article_ID 
    ORDER BY Number_Of_Plays desc 

Смотреть это из статьи: project-id:my_app_id.app_events_* и WHERE _TABLE_SUFFIX BETWEEN синтаксис строки.

+0

О, спасибо, я проведу его через пару часов и приму, если он будет работать правильно! Спасибо также за отзыв о стандартном SQL. Явно, что ошибки не указывают на это синтаксис. – droidpl

+0

Работал для меня, спасибо за поддержку – droidpl

Смежные вопросы