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

关于聚合函数机制的两种不同应用出现的问题,麻烦高手。... 关于聚合函数机制的两种不同应用出现的问题,麻烦高手。 展开
 我来答
匿名用户
推荐于2017-12-16
展开全部
你图中描述的第一个问题,是由于“书名”这个字段没有进行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时候指定这个字段的. 就像第一个语句中的规则,所以当你的第二个语句加上按定价分组时 就是正确的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式