分组查询各个部门根据部门(code升序)下工资最高和工资最低的人员姓名、和工资金额(工资最低的要求显示必须大于1000
时间: 2024-05-09 10:20:00 浏览: 15
)```
SELECT
d.code AS department_code,
MIN(e.salary) AS min_salary,
MAX(e.salary) AS max_salary,
MIN(IFNULL(e2.name, 'N/A')) AS min_salary_name,
IFNULL(e3.name, 'N/A') AS max_salary_name
FROM
department d
INNER JOIN employee e ON d.id = e.department_id
LEFT JOIN employee e2 ON e2.department_id = d.id AND e2.salary = MIN(e.salary)
LEFT JOIN employee e3 ON e3.department_id = d.id AND e3.salary = MAX(e.salary)
WHERE
e.salary > 1000
GROUP BY
d.code
ORDER BY
d.code ASC
```
说明:
1. 使用INNER JOIN将department表和employee表连接起来,以获取各个部门下的员工信息。
2. 使用LEFT JOIN将employee表连接两次,分别获取工资最低和最高的员工信息。
3. 使用IFNULL函数将工资最低的员工姓名显示为'N/A',以避免NULL值的出现。
4. 使用WHERE子句过滤掉工资低于1000的员工。
5. 使用GROUP BY子句对部门进行分组。
6. 使用ORDER BY子句按照部门code升序排序。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)