MYSQL每个部门中薪水最高的2名员工和部门平均工资

时间:2020-06-27 00:55:03

标签: mysql mysql-workbench average distinct record

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
        );

1 个答案:

答案 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