我有一个包含三个表的数据库,我需要返回因使用SQL而具有最高薪资成本的部门名称,这样做最有效的查询是什么。一整天都在为这个绞尽脑汁。
|----------------------------------------|
| 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 |
|---------------------|------------------|发布于 2020-11-06 14:26:00
您可以加入和聚合,然后顺序和限制:
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,但它们(几乎)都有其他选择。
https://stackoverflow.com/questions/64716287
复制相似问题