ERROR 1111(HY000):组功能的使用无效

Ach*_*ich 9 mysql sql

给出下表员工(ec,姓名,代码,dob,薪水)

问:列出收入超过平均工资的工作人员

我的溶解. select* from staff where salary > avg(salary);

它有什么问题?

Rag*_*ull 20

聚合可能不会出现在WHERE子句中,除非它位于HAVING子句或选择列表中包含的子查询中,并且聚合的列是外部引用.

示例使用WHERE子句:

select *
from staff 
where salary > (select avg(salary) from staff)
Run Code Online (Sandbox Code Playgroud)

示例使用HAVING子句:

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2
Run Code Online (Sandbox Code Playgroud)

Having子句指定组或聚合的搜索条件.HAVING只能与SELECT声明一起使用.HAVING通常用在一个GROUP BY子句中.何时GROUP BY不使用,HAVING表现得像一个WHERE条款.