BigQuery处理Firebase数据报错求助:添加国家字段后分组异常
解决BigQuery分组报错:SELECT字段未在GROUP BY中声明的问题
这个报错是BigQuery标准SQL里非常常见的分组逻辑问题,我来帮你快速搞定~
错误原因
当使用GROUP BY进行聚合统计时,SELECT列表里所有没有被聚合函数(比如COUNT/SUM/AVG等)包裹的字段,都必须出现在GROUP BY子句中。你新增了user_dim.geo_info.country字段到SELECT里,但没把它加入GROUP BY,BigQuery无法确定这个字段和现有分组(event_name、day)的对应关系,所以抛出了这个错误。
修复后的代码
只需要把user_dim.geo_info.country(或者它的别名country)加入GROUP BY即可,这样BigQuery就会按照「国家+事件名称+日期」的组合维度来统计用户数:
#standardSQL SELECT user_dim.geo_info.country, event.name AS event_name, _TABLE_SUFFIX as day, COUNT(1) as users FROM `project_new.app_events_*`, UNNEST(event_dim) AS event GROUP BY country, event_name, day
或者也可以直接写字段全称,效果完全一致:
#standardSQL SELECT user_dim.geo_info.country, event.name AS event_name, _TABLE_SUFFIX as day, COUNT(1) as users FROM `project_new.app_events_*`, UNNEST(event_dim) AS event GROUP BY user_dim.geo_info.country, event_name, day
这样修改后,你的查询就能正常获取到事件、国家、日期对应的用户统计数据啦。
内容的提问来源于stack exchange,提问作者Julio Moyano Basso
相关产品推荐
相关产品推荐

