数据库求每门课程的学生人数
时间: 2024-03-20 20:39:28 浏览: 13
假设您的数据库中有一个名为`course`的表格,其中包含课程信息,另一个名为`student`的表格,其中包含学生信息,还有一个名为`course_student`的表格,用于记录学生选修的课程。
您可以使用如下的SQL查询语句来获取每门课程的学生人数:
```
SELECT course.course_name, COUNT(DISTINCT course_student.student_id) AS student_count
FROM course
INNER JOIN course_student ON course.course_id = course_student.course_id
GROUP BY course.course_name;
```
这个查询语句使用了`INNER JOIN`连接`course`和`course_student`表格,并使用`GROUP BY`将结果按照课程名称进行分组。最后,使用`COUNT(DISTINCT ...)`函数来计算每门课程有多少个不同的学生选修,即为该课程的学生人数。
相关问题
求每门课程的学生人数用数据库
好的,以下是一个简单的数据库设计,用于存储课程和学生信息,并记录学生选修的课程:
```
表名: students
字段:
- id: 学生ID (主键)
- name: 学生姓名
表名: courses
字段:
- id: 课程ID (主键)
- name: 课程名称
表名: course_selections
字段:
- id: 选课记录ID (主键)
- student_id: 学生ID (外键,关联到students表的id字段)
- course_id: 课程ID (外键,关联到courses表的id字段)
```
通过查询 `course_selections` 表,我们可以得到每门课程的学生人数:
```
SELECT
courses.name AS course_name,
COUNT(course_selections.student_id) AS student_count
FROM
courses
LEFT JOIN course_selections ON courses.id = course_selections.course_id
GROUP BY
courses.id
```
这个查询会返回每门课程的名称和选修该课程的学生人数。如果学生没有选修某门课程,则该门课程的学生人数为0。
统计选修了【数据库原理】课程的学生人数。
根据您提供的问题,我将解释如何回答该问题。
您可以使用 SQL 查询来统计选修了数据库原理课程的学生人数。假设您有一个名为 course 的课程表和一个名为 student_course 的学生选课表。在 student_course 表中,每个学生选课的记录都会显示该学生的 ID 和所选课程的 ID。
要统计选修了数据库原理课程的学生人数,请使用以下 SQL 查询:
```
SELECT COUNT(DISTINCT student_id) as student_count
FROM student_course
WHERE course_id = (SELECT id FROM course WHERE name='数据库原理');
```
该查询将返回一个名为 student_count 的计数器,其中包含已选数据库原理课程的学生人数。
请注意,查询中的子查询用于查找课程名称为“数据库原理”的课程的 ID。您可以将查询中的课程名称更改为您要统计选课人数的课程的名称。
希望这可以帮助您回答这个问题。