BigQuery分组报错:不允许按STRUCT类型表达式分组的问题排查
问题排查与解决方案
错误原因
你把许可证表的别名设为license,导致SELECT license和GROUP BY license里的license被BigQuery解析成整个表的行数据(STRUCT类型),而非你要统计的许可证名称字段。BigQuery不支持按STRUCT类型分组,因此触发该错误。
修正后的查询语句
%%bigquery --project $project_id q6b SELECT licenses.license, ROUND(AVG(repos.watch_count)) avg_watch_count FROM `cs145-fa21-326819.project2.github_repos` repos JOIN `cs145-fa21-326819.project2.github_repo_licenses` licenses ON repos.lrepo_name = licenses.lrepo_name GROUP BY licenses.license ORDER BY avg_watch_count DESC LIMIT 20
关键修正点
- 将许可证表的别名从
license改为licenses,避免和字段名重名引发混淆 - 明确指定分组和查询的字段为
licenses.license(如果你的许可证字段名不是license,替换为实际字段名即可,比如license_name)
内容的提问来源于stack exchange,提问作者Emory Attikson
相关产品推荐
相关产品推荐

