如何为此方案编写SQL查询?

时间:2012-01-19 20:06:07

标签: sql

我有一个包含属性Id, Emp_name, dept_name, salary的表。现在我想编写一个SQL查询,它将给出dept_name值,该属于该部门的所有员工的总薪水最高,即所有员工的工资总额最高的部门。 ..?如果在stackoverflow上有任何类似问题的答案,请建议..我找到一个。谢谢:)

我尝试使用group by函数sum(),但我无法找到如何找到最大值并将其与总和进行比较。

5 个答案:

答案 0 :(得分:2)

你能做到吗

    SELECT TOP 1 dept_name FROM table GROUP BY dept_name ORDER BY SUM(salary) DESC

答案 1 :(得分:0)

似乎是GROUP BY的教科书示例:

select dept_name, total_salary from (
  Select dept_name, sum(salary) as total_salary
  from my_table
  group by dept_name
) order by total_salary desc

答案 2 :(得分:0)

试试这个:

从myTable组中选择top 1 dept_name by dept_name order by sum(salary)desc

答案 3 :(得分:0)

SELECT dept_name FROM table
GROUP BY dept_name
ORDER BY SUM(salary) DESC
LIMIT 1

而且你最好还是通过foregn键将另一个表中的部门链接到第一个表。只是一张便条。

答案 4 :(得分:0)

我不知道确切知道你的要求,但也许还有另外一点需要考虑:两个(或更多)部门可以有相同的工资总额。

我还没有测试过这个查询,但是这应该会给你所有最高工资的部门:

select dept_name FROM table_name GROUP BY dept_name HAVING SUM(salary)=(选择MAX(sum_salary)FROM(选择SUM(薪水)AS sum_salary FROM table_name GROUP BY dept_name))