仅按最大值选择名称

时间:2014-07-10 18:13:29

标签: sql sql-server

我有一个请求

select
    w.Departament_Id, avg(w.Salary) as avgSal,
    dep.Name as Name
from
    Employee w
join
    Departament dep
on
    dep.Id = w.Departament_Id 
group by
    w.Departament_Id,
    dep.Name

此请求返回一个表,其中包含每个部门的所有平均薪水。接下来,目标是选择具有最大avgSal值的部门的Name。 怎么解决?

1 个答案:

答案 0 :(得分:2)

按聚合排序并占据前1:

select TOP 1
    w.Departament_Id, 
    avg(w.Salary) as avgSal,
    dep.Name as Name
from Employee w
join Departament dep
    on dep.Id = w.Departament_Id 
group by
    w.Departament_Id,
    dep.Name
ORDER BY avg(w.Salary) DESC

根据您的服务器软件,语法可能略有不同(有些会允许ORDER BY avgSal,有些则不会;有些会使用LIMIT代替TOP),但这是一般的想法