我是一名学生,正在处理假期交给我们的 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));
但是我收到以下错误:
'Invalid use of group function error'.
最佳答案
如果 salary
总和是唯一的,您可以计算每个 dept
的总和,然后按总薪水降序排列记录并获取第一条记录(薪水最高的):
select dept
, sum(salary) as salary
from tbl
group by dept
order by salary desc
limit 1
如果多个 dept
的 salary
总和相同,您可以计算每个 dept
的薪水总和,然后找到最大值 salary
以与上述相同的方式求和,并使用 having
子句验证每组的 salary
总和是否等于最大 salary
总和:
select dept
from tbl
group by dept
having sum(salary) = ( select sum(salary) as salary
from tbl
group by dept
order by salary desc
limit 1)
关于mysql - 找到支付最高薪水的部门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29982806/