SQL SEVER查询选修了课程的学生总人数。
时间: 2023-08-25 20:04:27 浏览: 138
好的,您可以尝试使用以下 SQL 查询语句:
```
SELECT COUNT(DISTINCT student_id) as student_count
FROM student_course;
```
解释一下这个查询语句:
- `student_course` 是指学生选课表的表名,您需要替换成您实际使用的表名。
- `DISTINCT student_id` 表示去除重复的学生编号,只计算选修了课程的学生总人数。
- `COUNT(*)` 表示计算学生总数。
- `as student_count` 表示将计算结果重命名为 student_count。
希望这个查询语句能够帮到您!
相关问题
sqlsever 查询选修课程编号为0003的人数和该课程有成绩的人数及平均成绩。
假设选修课程编号为0003的课程在成绩表中的字段名为"course_id",成绩字段名为"score",学生编号字段名为"student_id",学生表名为"students",成绩表名为"scores",则SQL语句如下:
查询选修课程编号为0003的人数:
```
SELECT COUNT(DISTINCT student_id) AS num_students
FROM scores
WHERE course_id = '0003';
```
查询该课程有成绩的人数及平均成绩:
```
SELECT COUNT(DISTINCT student_id) AS num_students, AVG(score) AS avg_score
FROM scores
WHERE course_id = '0003' AND score IS NOT NULL;
```
注意:如果某个学生选修了该课程但没有成绩,则该学生不会被计入有成绩的人数和平均成绩的计算中。
SQL SEVER 查询选修课程数低于3门的学生信息(需含未选课的学生信息)
可以使用以下 SQL 查询语句来获取选修课程数低于3门的学生信息(包括未选课的学生信息):
SELECT s.*
FROM students s
LEFT JOIN enrollments e ON s.student_id = e.student_id
GROUP BY s.student_id
HAVING COUNT(e.course_id) < 3 OR COUNT(e.course_id) IS NULL;
其中,students 表存储学生信息,包括学生ID、姓名等;enrollments 表存储学生选修的课程信息,包括学生ID、课程ID等。LEFT JOIN 用于将学生信息和选课信息进行关联,GROUP BY 用于按照学生ID进行分组,HAVING 用于筛选选修课程数低于3门的学生信息。
阅读全文