mysql - 为什么在 WHERE 子句中使用聚合函数会出错?

标签 mysql sql

<分区>

我是 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/

相关文章:

mysql - SQL GROUP BY 两列但一一分组

sql - 一个表中的行在另外两个表中没有对应行?

mysql - 防止 MySQL 中的特定更新

mysql - CONCAT 列并复制到其他表 MySQL

Mysql, 树, 分层查询, 性能

php - 更改mysql查询结果集的数组索引

mysql - SQL 选择带有 "begin with"的项目/在变量​​名称后面放置一个 %

php - 使用 select 选择不在的地方

mysql - 如何保证数据库行只更新一次?

php - 多下拉查询过滤器