统计各部门人数,要求输出部门id,部门名称,人数。按部门排序。
时间: 2024-03-05 13:49:44 浏览: 69
假设我们有两张表,一张是`department`表,包含`id`和`name`两个字段,另一张是`employee`表,包含`id`和`dept_id`两个字段,其中`dept_id`是部门id:
```
department表:
+----+------+
| id | name |
+----+------+
| 1 | IT |
| 2 | HR |
| 3 | Sales|
+----+------+
employee表:
+----+---------+
| id | dept_id |
+----+---------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
| 5 | 3 |
+----+---------+
```
则可以使用以下SQL语句统计各部门人数并输出部门id,部门名称和人数(按部门id排序):
```
SELECT d.id, d.name, COUNT(*) AS num
FROM department d
LEFT JOIN employee e ON d.id = e.dept_id
GROUP BY d.id
ORDER BY d.id;
```
这个查询语句中,我们使用了`LEFT JOIN`将`department`表和`employee`表连接起来,并以`department`表为基础进行统计。使用`GROUP BY`语句将记录按照部门id进行分组,使用`COUNT(*)`函数统计每个部门的人数。最后使用`ORDER BY`语句按照部门id进行排序。
输出结果如下:
```
+----+-------+-----+
| id | name | num |
+----+-------+-----+
| 1 | IT | 2 |
| 2 | HR | 2 |
| 3 | Sales | 1 |
+----+-------+-----+
```
阅读全文