有两个表,一个员工表和一个部门表,mysql 实现按照部门编号进行分组,统计每个部门的人数,总月薪,平均月薪,最高月薪,最低月薪代码
时间: 2024-10-05 09:04:59 浏览: 26
mysql实用技巧之比较两个表是否有不同数据的方法分析
在MySQL中,你可以使用`GROUP BY`、`COUNT()`, `SUM()`, `AVG()` 和 `MAX()`, `MIN()` 函数结合子查询或者直接在一个SQL语句中完成这个任务。这里是一个基本的例子:
```sql
SELECT
d.department_id,
d.department_name,
COUNT(e.employee_id) AS employee_count,
SUM(e.salary) AS total_salary,
AVG(e.salary) AS avg_salary,
MAX(e.salary) AS max_salary,
MIN(e.salary) AS min_salary
FROM
employees e
JOIN
departments d ON e.department_id = d.department_id
GROUP BY
d.department_id;
```
在这个查询中:
- `employees` 表代表员工表,`employee_id` 是员工ID,`salary` 是薪水。
- `departments` 表代表部门表,`department_id` 是部门编号,`department_name` 是部门名称。
- `JOIN` 连接了两个表,基于它们之间的部门ID关联。
- 使用`GROUP BY d.department_id` 将结果按部门ID分组,对每个部门执行聚合函数。
阅读全文