我是一名学生,正在为我们的假期工作进行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));
但是我收到以下错误:
'无效使用群组功能错误'。
答案 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