一尘不染

错误1111(HY000):无效使用组功能

mysql

给定以下表人员(ec,名称,代码,dob,薪水)

问:列出收入高于平均工资的工作人员

我的儿子 select* from staff where salary > avg(salary);

这有什么问题?


阅读 352

收藏
2020-05-17

共1个答案

一尘不染

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

使用WHERE子句示例:

select *
from staff 
where salary > (select avg(salary) from staff)

使用HAVING子句示例:

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2

Having子句指定组或集合的搜索条件。HAVING只能与该SELECT语句一起使用。HAVING通常在GROUP BY子句中使用。当GROUP BY不使用时,HAVING就像一个WHERE条款。

2020-05-17