SQL查询按SUM(Revenue)排序时报Release_date未分组/聚合错误怎么解决
SQL报错修复方案
错误提示翻译:
SELECT 列表中的表达式引用了 Release_date 列,该列既没有出现在 GROUP BY 子句中,也没有被聚合函数处理,位于[2:19]
- 该报错通常出现在BigQuery等对分组字段校验较严格的SQL引擎中,引擎无法识别
GROUP BY子句中写的EXTRACT(YEAR FROM Release_date)和SELECT中的计算字段为同一值,因此判定Release_date未被分组或聚合。
修复后可运行代码
SELECT EXTRACT(YEAR FROM Release_date) AS year_released, COUNT(Genre) AS number_of_comedy, SUM(Revenue) AS total_revenue FROM Movie_data.movie WHERE Genre = 'Comedy' GROUP BY year_released ORDER BY total_revenue -- 若需要按收入从高到低排序,将上一行改为 ORDER BY total_revenue DESC LIMIT 1000
补充说明
- 如果你的SQL运行环境不支持GROUP BY引用SELECT别名,可将
GROUP BY year_released替换为GROUP BY 1,按SELECT中字段的顺序序号指代分组字段,兼容性更强。 - 后续写分组查询时优先用别名或者序号指代分组字段,可避免重复写计算逻辑,也能减少这类匹配报错的概率。
内容的提问来源于stack exchange,提问作者Asante Charles
相关产品推荐
相关产品推荐

