mysql查询已经选课的学生的人数。
时间: 2023-07-15 09:13:56 浏览: 158
假设你有两个表:students(学生信息)和 courses(课程信息),并且这两个表通过一个中间表 enrollments(选课信息)进行关联,那么可以使用以下 SQL 查询已经选课的学生人数:
```
SELECT COUNT(DISTINCT student_id) as num_students
FROM enrollments
WHERE course_id = [course_id];
```
其中,[course_id] 是要查询的课程的 ID。该查询会返回已经选了该课程的学生人数。
相关问题
mysql查询选课了的学生人数和未选课的学生人数
假设你有两张表,一张是学生信息表(Student),另一张是选课信息表(CourseSelection),其中学生信息表包含了所有学生的信息,选课信息表包含了学生选课的记录,包括学生ID和课程ID。
查询选课了的学生人数和未选课的学生人数的 SQL 语句如下:
```
SELECT
COUNT(DISTINCT Student.ID) AS '选课人数',
(SELECT COUNT(*) FROM Student) - COUNT(DISTINCT CourseSelection.StudentID) AS '未选课人数'
FROM
Student
LEFT JOIN
CourseSelection ON Student.ID = CourseSelection.StudentID;
```
上面的 SQL 语句使用了 COUNT、DISTINCT、LEFT JOIN 等关键字。
- COUNT:用于计算行数或非空值的数量。
- DISTINCT:用于去除重复的值。
- LEFT JOIN:用于将两张表按照指定条件进行连接,左表中的所有行都会被保留,而右表中没有匹配的行则会用 NULL 填充。
上面的查询语句中,COUNT(DISTINCT Student.ID) 表示选课了的学生人数,它通过 LEFT JOIN 连接学生信息表和选课信息表,并使用 DISTINCT 去除重复的学生ID,最后使用 COUNT 计算行数。
(SELECT COUNT(*) FROM Student) - COUNT(DISTINCT CourseSelection.StudentID) 表示未选课的学生人数,它使用了子查询和数学计算。子查询语句 SELECT COUNT(*) FROM Student 用于计算学生信息表中的总行数,然后减去选课了的学生人数,得到未选课的学生人数。
执行以上 SQL 语句后,将返回一个结果集,其中包含两个列:选课人数和未选课人数。
MySQL统计查询选课了的学生人数和未选课的学生人数
可以使用MySQL的聚合函数和条件表达式来进行统计查询。假设选课信息存储在名为`course`的表中,学生信息存储在名为`student`的表中。则可以使用以下SQL语句进行查询:
```sql
SELECT
SUM(CASE WHEN course_id IS NOT NULL THEN 1 ELSE 0 END) AS selected_count,
SUM(CASE WHEN course_id IS NULL THEN 1 ELSE 0 END) AS unselected_count
FROM
student
LEFT JOIN course ON student.id = course.student_id;
```
这条SQL语句中,首先对`student`表和`course`表进行左连接,以保证所有学生信息都被包含在结果中。然后使用条件表达式`CASE WHEN ... THEN ... ELSE ... END`来判断每个学生是否选课,如果选课则`course_id`不为空,未选课则`course_id`为空。最后使用聚合函数`SUM()`对每个条件的结果进行求和,得到选课了的学生人数和未选课的学生人数。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.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)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.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)