<分区>
我是 SQL 的新手,阅读了很多资料,它只是告诉我改用 HAVING。是否有更深的债务解决方案或替代方案的原因?
另外,在HAVING子句中使用聚合函数不是错误吗?这与在 where 子句中使用 one 有何不同?
<分区>
我是 SQL 的新手,阅读了很多资料,它只是告诉我改用 HAVING。是否有更深的债务解决方案或替代方案的原因?
另外,在HAVING子句中使用聚合函数不是错误吗?这与在 where 子句中使用 one 有何不同?
最佳答案
在 WHERE 子句中应用的条件是指在应用 GROUP BY 子句之前表的行中的值,而 HAVING 子句中的条件适用于 GROUP-BY 后的结果集。
因此,您可以在 HAVING 子句中引用 GROUP BY 列或聚合,但不能引用 GROUP BY 后不能保证其值唯一的列。在WHERE子句中,GROUP BY的结果集不可用,所以可以引用任何行值,但不能引用聚合结果。
关于mysql - 为什么在 WHERE 子句中使用聚合函数会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011787/