Sql 查询多个表格中的多个参数,表格的日期范围为Firebase Analytics
我打算从应用程序中的事件中获得一篇文章中播放的大多数音频的统计数据。如果我发送articleId和已播放的audioID 我希望获得如下结果行,按发生次数排序:Sql 查询多个表格中的多个参数,表格的日期范围为Firebase Analytics,sql,firebase,google-bigquery,firebase-analytics,Sql,Firebase,Google Bigquery,Firebase Analytics,我打算从应用程序中的事件中获得一篇文章中播放的大多数音频的统计数据。如果我发送articleId和已播放的audioID 我希望获得如下结果行,按发生次数排序: | ID of the article | ID of the audio | number of occurrences 由于firebase analytics以日记形式导出到bigquery,并且我希望每个月都有这些事件,因此我创建了一个查询,从多个表中获取值,并将其与我在线程中找到的信息混合 结果查询是: SELECT
| ID of the article | ID of the audio | number of occurrences
由于firebase analytics以日记形式导出到bigquery,并且我希望每个月都有这些事件,因此我创建了一个查询,从多个表中获取值,并将其与我在线程中找到的信息混合
结果查询是:
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
我很确定这个问题与查询一个范围内的多个表有关,但不确定如何解决它。谢谢。您参考的另一个答案是使用StandardSQL,您正在尝试使用仅在LegacySQL中可用的TABLE_DATE_RANGE 这是标准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\u TABLE\u后缀位于语法行之间。噢,伙计,谢谢,我将在几个小时内测试它,并接受它是否正常工作!还感谢您提供有关标准SQL的提示。令人遗憾的是,这些错误在语法上没有这样的表述。