给定以下表人员(ec,名称,代码,dob,薪水)
问:列出收入高于平均工资的工作人员
我的儿子 select* from staff where salary > avg(salary);
select* from staff where salary > avg(salary);
这有什么问题?
WHERE除非在HAVING子句或选择列表中包含的子查询中,否则聚合可能不会出现在子句中,并且正在聚合的列是外部引用。
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条款。
Having
SELECT
GROUP BY