找到正在支付最高工资的部门

时间:2015-05-01 06:53:09

标签: mysql sql database max

我是一名学生,正在为我们的假期工作进行MySql任务 我有一张看起来像这样的表:

name      dept     salary  
 A       Sales      100
 B       Marketing  200
 C       Sales      800

(抱歉,我是stackexchange的新手,所以我不知道如何显示表格。)

查询的问题是:找到正在支付最高工资的部门
我输入了以下查询:

SELECT dept
     , SUM(salary)
FROM emp
GROUP BY dept
HAVING MAX(SUM(salary));

但是我收到以下错误:

  

'无效使用群组功能错误'。

1 个答案:

答案 0 :(得分:3)

如果salary总和是唯一的,您可以计算每个dept的总和,然后按汇总工资的降序排序记录并获取第一个记录(薪水最高):

select dept
     , sum(salary) as salary
from tbl
group by dept
order by salary desc
limit 1

如果多个salary的{​​{1}}总和可以相同,则可以计算每个dept的工资总和,然后按照与解释相同的方式查找最大dept总和上面并使用salary子句验证每个组的having总和是否等于最大salary总和:

salary