获取最高工资的部门名称 SQL

Get the name of department with max salary SQL

我有一个包含三个表的数据库,我需要使用 SQL return 工资成本最高的部门的名称,执行此操作的最有效查询是什么。一整天都在为这个绞尽脑汁。

|----------------------------------------|
|             Departments                |
|---------------------|------------------|
|      id             |    name          |
|---------------------|------------------|
|        1            |   physics        |
|---------------------|------------------|
|        2            |    math          |
|---------------------|------------------|
|------------------------------------------------|
|             Empoyees                           |
|------------|------------------|----------------|
|      id    |    name          |  department-id |
|------------|------------------|----------------|
|        1   |    mike          |       1        |
|------------|------------------|----------------|
|        2   |    frank         |       1        |
|------------|------------------|----------------|
|        3   |    bob           |       2        |
|------------|------------------|----------------|
|----------------------------------------|
|             Salaries                   |
|---------------------|------------------|
|      employee-id    |    salary        |
|---------------------|------------------|
|        1            |   1000           |
|---------------------|------------------|
|        2            |    2000          |
|---------------------|------------------|
|        3            |    3000          |
|---------------------|------------------|

您可以加​​入并聚合,然后排序和限制:

select d.name, sum(s.salary) sum_salary
from departments d
inner join employees e on e.department_id = d.id
inner join salaries s on s.employee_id = e.id
group by d.id, d.name
order by sum_salary desc
limit 1

limit 并非所有数据库都支持,但它们(几乎)都有替代方案。