所以我有这个问题:
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary) > 10000;
但是输出让我感到困惑,因为我只是不明白为什么它显示低于10000的值,即使我在过滤条款中指定为> 10000
8601,333333333333333333333333333333333333
4150
19333,3333333333333333333333333333333333
9500
10154
8955,882352941176470588235294117647058824
我预计只会输出10154和19333,3333333333333333333333333333333333。非常感谢
答案 0 :(得分:2)
您正在显示工资的平均值,其中部门中的 max()大于10000.因此,只有一个工资需要大于10000才能显示部门。
也许你的意思是:
SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary) > 10000;
答案 1 :(得分:1)
请尝试按照sql -
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 10000;
或
SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary) > 10000;
运行你想要的......