MySQL,每个部门中薪水最高的2名员工和部门平均工资。 我能够从中检索每个部门中薪水最高的两名员工,但我不知道如何计算部门的平均薪水
SELECT *
FROM Employee e1
WHERE 2 > (
SELECT COUNT(DISTINCT Salary)
FROM Employee e2
WHERE e2.Salary > e1.Salary
AND e1.Dept = e2.Dept
);
答案 0 :(得分:0)
我本人在sql上还很新,但是我认为您不能在同一查询中包含按部门划分的平均值。您的where语句将对您的选择产生影响,因此您查询的任何平均值都只会是where语句返回的行的平均值。在我看来(再次以我有限的经验),必须进行第二次查询才能使用类似
的方式呈现平均工资SELECT AVG(e1.salary), AVG(e2.salary), DISTINCT e1.dept, DISTINCT e2.dept
从员工e1 GROUP BY e1.dept,e2.dept