现有表格Department(科室),DoctorLevel(医生级别),Doctor(医生),Room(诊室),Schedule(排班),要求用mysql实现下列语句:,查询各个医生级别的级别编码、级别名称及其人数。(要求只按医生级别分组,统计人数建议用派生表)
时间: 2024-02-09 14:09:39 浏览: 43
可以使用如下的 MySQL 语句实现:
```mysql
SELECT
dl.level_code,
dl.level_name,
COUNT(*) AS num_of_doctors
FROM
Doctor d
JOIN DoctorLevel dl ON d.level_id = dl.level_id
GROUP BY
dl.level_code,
dl.level_name;
```
这个语句中,我们首先通过 `JOIN` 连接了 `Doctor` 表和 `DoctorLevel` 表,以便能够获取到医生级别的编码和名称。然后,我们使用 `GROUP BY` 将结果按照医生级别分组,并且使用 `COUNT(*)` 统计了每个分组的人数。最后,我们将结果集中的级别编码、级别名称和人数进行了查询,从而得到了查询各个医生级别的级别编码、级别名称及其人数的结果。
相关问题
定义一个视图doctor_info,包含工作证号,医生姓名、科室编码、科室名称、医生级别编码、级别名称,其中工作证号来自Doctor表,科室编码来至department表,医生级别编码DoctorLevel表。使用该视图完成查询:查询医生姓名、科室名称、级别名称。
好的,以下是创建视图doctor_info的 SQL 语句:
```
CREATE VIEW doctor_info AS
SELECT d.doctor_id, d.doctor_name, dep.department_code, dep.department_name, dl.level_code, dl.level_name
FROM Doctor d
JOIN Department dep ON d.department_id = dep.department_id
JOIN DoctorLevel dl ON d.level_id = dl.level_id;
```
然后,你可以使用以下 SQL 查询来获取医生姓名、科室名称和级别名称:
```
SELECT doctor_name, department_name, level_name
FROM doctor_info;
```
这将从doctor_info视图中检索医生姓名、科室名称和级别名称。注意,视图是在查询中使用的一种虚拟表,它不会存储数据,而是根据查询动态生成数据。因此,每次查询都会重新生成数据,所以查询效率可能会受到影响。
用sql语句写统计科室医生人数超过1个的科室
可以用如下的SQL语句来实现:
```
SELECT department
FROM doctors
GROUP BY department
HAVING COUNT(DISTINCT doctor_name) > 1;
```
解释一下这个SQL语句的含义:
- 首先我们从 `doctors` 表中选择 `department` 列,这个列存储了医生所在的科室。
- 然后我们按科室进行分组,使用 `GROUP BY` 关键字。
- 接着我们使用 `COUNT(DISTINCT doctor_name)` 来统计每个科室里的医生人数,其中 `DISTINCT` 关键字用于去重,因为有可能有医生在同一个科室工作了多年。
- 最后我们使用 `HAVING` 关键字来过滤掉医生人数少于等于1个的科室,只留下医生人数超过1个的科室。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)