如何找到两个表中平均工资最高的dept名称

问题描述 投票:0回答:3

有两张桌子

Employee
Id
Name
Salary
DepartmentId

Departament
Id
Name

我怎样才能在两张表中获得最高的平均工资

Joe and Max belong to dept 1 so, avg is (70K+90K)/2
= 80K

Henry and Sam belog to dept 2, avg is (80K + 60K)/2=70k

那么如何选择deptno的最高平均工资?在这种情况下

IT 80K

我已经试了:

'将每个部门的薪水分组,并使用Max函数获得最高的薪水。

select 
    Department.Name as Department,
    T.M as Salary
from
    Employee,
    Department,
    (select DepartmentId as ID, Max(Salary) as M from Employee group by DepartmentId) as T
where
    Employee.Salary = T.M and
    Department.Id = T.ID and 
    Employee.DepartmentId = Department.Id

enter image description here

sql sql-server
3个回答
0
投票

如果您想要完整答案,则应提供DDL,样本数据和所需结果。如果我理解正确,你正在寻找类似的东西:

SELECT DepartmentID, AVG(Salary) AS AverageSalaryForDept
FROM Employee
GROUP BY DepartmentID
ORDER BY AverageSalaryForDept DESC;

这将为您提供从最高到最低排序的所有平均值。现在,如果您只想要最上面一个,请添加一个FETCH子句:

SELECT DepartmentID, AVG(Salary) AS AverageSalaryForDept
FROM Employee
GROUP BY DepartmentID
ORDER BY AverageSalaryForDept DESC
OFFSET 0 ROWS FETCH NEXT 1 ROW ONLY;

HTH


0
投票

如果你想获得部门的平均值,你可以这样使用。

select DepartmentId as ID,  de.name as Deptname,  Avg(Salary) as M from Employee em1 
       join Department de on de.departmentID = em1.DepartmentId 
          group by DepartmentId, de.name

如果您想要员工姓名以及最高平均值,那么您也可以使用此方法。

select 
Deptname as Department,
e.Name as Employeename, 
z.M as Salary
from
Employee e 
join 
( select DepartmentId,Deptname, M, row_number() (order by m desc) rownum from (   select DepartmentId as ID,  de.name as Deptname,  Avg(Salary) as M from Employee em1 
       join Department de on de.departmentID = em1.DepartmentId 
          group by DepartmentId, de.name) as T) z
on 
e.DepartmentId = T.DepartmentId  and z.rownum = 1 

0
投票

如果多个部门具有相同的最大平均工资,则此解决方案将返回多行。

SELECT *
FROM(
SELECT d.Id, d.Name, AVG(e.Salary) avg_salary, RANK() OVER(ORDER BY AVG(e.Salary) DESC) AS rank_
FROM Employee e
INNER JOIN Departament d ON e.DepartmentId = d.Id
GROUP BY d.Id, d.Name
)T
WHERE rank_ = 1
© www.soinside.com 2019 - 2024. All rights reserved.