取得每个部门最高薪水的人员姓名,提示:先求每个部门的最高薪水,再将此结果表作为临时表和employee表连接
时间: 2024-12-19 20:15:20 浏览: 5
在SQL查询中,你可以通过以下几个步骤获取每个部门的最高薪水以及对应的员工姓名:
1. **首先,找出每个部门的最高薪水**:
```sql
SELECT department_id, MAX(salary) as max_salary
FROM employee
GROUP BY department_id;
```
2. **然后,创建一个临时表(或视图)存储这些部门最高薪水的信息**:
这一步会得到 `department_id` 和 `max_salary` 的组合。
3. **最后,将这个临时表与 `employee` 表联接,找到对应的最大薪水记录,并加入员工姓名**:
```sql
SELECT e.employee_name, e.department_id, e.salary
FROM employee e
JOIN (
SELECT department_id, max_salary
FROM (
SELECT department_id, salary
FROM employee
GROUP BY department_id
) subquery
ORDER BY max_salary DESC
LIMIT 1
) temp_table ON e.department_id = temp_table.department_id AND e.salary = temp_table.max_salary;
```
这里假设 `salary` 列就是表示薪水的字段。如果需要考虑有平局最高薪水的情况,可以稍微调整第三步的SQL查询,比如使用窗口函数 RANK() 或者 DENSE_RANK()。
阅读全文