mysql分组及排序(1)按学院汇总教师人数。显示学院编号、名称和教师人数,只显示人数在3人以上的学院信息。
时间: 2023-06-24 16:07:51 浏览: 1313
可以使用以下SQL语句实现:
```
SELECT college_id, college_name, COUNT(teacher_id) AS teacher_num
FROM teacher
GROUP BY college_id
HAVING teacher_num >= 3
ORDER BY teacher_num DESC;
```
其中,`teacher`是包含教师信息的表,包括`teacher_id`、`college_id`等字段,`college`是包含学院信息的表,包括`college_id`、`college_name`等字段。
解释一下SQL语句的各个部分:
- `SELECT`语句中选择了`college_id`、`college_name`和`COUNT(teacher_id) AS teacher_num`三个字段,其中`teacher_num`是对`teacher_id`进行计数的结果,并且使用`AS`关键字给该计数结果指定了别名`teacher_num`。
- `FROM`语句中指定了从`teacher`表中获取数据。
- `GROUP BY`语句中指定了按`college_id`进行分组。
- `HAVING`语句中指定了只显示教师人数`teacher_num`在3人以上的学院信息。
- `ORDER BY`语句中指定了按教师人数`teacher_num`降序排序。
执行以上SQL语句后,将会得到每个学院的编号、名称和教师人数,并且只显示教师人数在3人以上的学院信息。
相关问题
MySQL查询 users 表,统计各城市的用户人数,显示人数在 3 人以上的城市和用户数
可以使用如下的MySQL语句来实现:
```
SELECT city, COUNT(*) as num_users
FROM users
GROUP BY city
HAVING num_users > 3
ORDER BY num_users DESC;
```
这个语句会先按照城市进行分组,并统计每个城市的用户人数。然后使用HAVING子句筛选出人数在3人以上的城市,并按照用户人数降序排序输出结果。
mysql分组及排序(1) 查询有教师的部门(学院)信息。
可以通过以下 SQL 语句实现:
```sql
SELECT department
FROM teacher
GROUP BY department
HAVING COUNT(*) > 0;
```
说明:
- `SELECT department`:选择部门列作为结果。
- `FROM teacher`:从 `teacher` 表中查询。
- `GROUP BY department`:按照 `department` 列分组。
- `HAVING COUNT(*) > 0`:只选择有教师的部门,即教师数量大于 0。
这样就可以查询出有教师的部门信息了。