作业帮 > 综合 > 作业

该列没有包含在聚合函数或 GROUP BY 子句

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/08 14:20:34
该列没有包含在聚合函数或 GROUP BY 子句
你图中描述的第一个问题,是由于“书名”这个字段没有进行Group by分组,因为在查询语句中使用到Group by 时,必须指定要分组的对象,但是如果查询的字段使用了聚合函数,则无需在GROUP BY中指定它 打个比方有表 TB 中有字段 a,b,c那么select a,b from TB group by a,b 是成立的, 如果你写成 select a,b from TB group by a 就会报你遇到的错误 但如果你写成select a,max(b) from TB group by a 就不会报错,因为时针对b字段进行了聚合函数计算报错信息可以这样理解‘要么在Group by后指定该字段 要么对该字段使用聚合函数’ 现在来看你第二处报错的语句,这个语句中,你虽然使用了AVG(定价)这个聚合函数,但是在后面的CASE WHEN 语句中再次使用到定价 并且没有针对它使用聚合函数,那么依然是需要在Group by时候指定这个字段的. 就像第一个语句中的规则,所以当你的第二个语句加上按定价分组时 就是正确的