首页 > 数据库 > mysql教程 > 为什么我会收到 MySQL 错误 1111:组函数的无效使用?

为什么我会收到 MySQL 错误 1111:组函数的无效使用?

Linda Hamilton
发布: 2024-12-31 10:42:16
原创
513 人浏览过

Why Am I Getting MySQL Error 1111: Invalid Use of Group Function?

令人困惑的错误 1111:组函数的无效使用

尝试使用聚合函数(例如 AVG)时会出现此问题WHERE 子句,导致神秘的错误 1111 (HY000).

理解问题的症结

SQL 规定聚合函数不能驻留在 WHERE 子句中,除非它们封装在包含在HAVING 子句或选择列表。此外,进行聚合操作的列必须从外部上下文引用。

使用 WHERE 子句解决错误

纠正此错误的一种方法是使用WHERE 子句中的子查询,如下所示:

select *
from staff
where salary > (select avg(salary) from staff)
登录后复制

在这种情况下,平均值使用子查询计算工资,然后与每个人的工资进行比较。

使用 HAVING 子句解决错误

或者,可以利用 HAVING 子句建立搜索组或聚合的条件,如下所示:

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2
登录后复制

HAVING 子句指定结果只有两个以上成员的组才会被返回。

HAVING 子句的附加注释

值得注意的是,HAVING 子句通常与GROUP BY 子句。但是,当 GROUP BY 不存在时,HAVING 的行为类似于 WHERE 子句。

以上是为什么我会收到 MySQL 错误 1111:组函数的无效使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板