虽然我知道我可以清楚地使用嵌套的SQL查询来获取薪水大于平均员工薪水的员工数量,但带有 HAVING 子句的查询却不能。有什么我想念的东西吗?
mysql> select count(*) from employee
where salary > (select avg(salary) from employee) ;
+----------+
| count(*) |
+----------+
| 4 |
+----------+
1 row in set (0.00 sec)
`
这不起作用。
mysql> select count(*) from employee group by salary having salary > avg(salary);
空集(0.00秒)
答案 0 :(得分:0)
如果您打算使用聚合函数,则可以尝试一下。否则,第一个查询就可以了。
SELECT count(*) Count
FROM (
SELECT
salary,
AVG(salary) OVER () AS AvgSalary
FROM employee
) s
WHERE salary> AvgSalary
答案 1 :(得分:0)
我认为对此的正确答案是:
SELECT fname , salary
FROM employee
GROUP BY salary
HAVING salary > (SELECT avg(salary) FROM employee);