SQL中统计每门课程的选修学生人数以及各门课程的平均成绩
时间: 2024-03-05 08:49:30 浏览: 102
可以使用如下的 SQL 语句来实现您的需求:
```sql
SELECT Course.Cname, COUNT(SC.Sno) AS num_of_students, AVG(SC.Grade) AS avg_grade
FROM Course
LEFT JOIN SC ON Course.Cno = SC.Cno
GROUP BY Course.Cname;
```
这条 SQL 语句中使用了 `LEFT JOIN` 连接了 `Course` 表和 `SC` 表,以获取每门课程的学生选课情况和成绩信息。使用 `COUNT` 函数可以统计每门课程的选修学生人数,使用 `AVG` 函数可以计算每门课程的平均成绩。最后使用 `GROUP BY` 子句对每门课程进行分组,以便于统计每门课程的选修学生人数和平均成绩。
相关问题
mysql统计每门课程的选修学生人数及各门课程的平均成绩
你可以使用以下SQL语句来实现这个功能:
```
SELECT course_name, COUNT(DISTINCT student_id) AS student_num, AVG(score) AS avg_score
FROM course_score
GROUP BY course_name;
```
这个SQL语句假设你有一个名为`course_score`的表,其中包含了每位学生在每门课程中的成绩。这个表至少应该包含以下三列:`student_id`,`course_name`和`score`。`student_id`表示学生的ID,`course_name`表示课程名称,`score`表示学生在这门课程中的成绩。
这个SQL语句使用了`GROUP BY`子句来按照课程名称对数据进行分组,然后使用`COUNT(DISTINCT student_id)`函数来统计每门课程的选修学生人数,使用`AVG(score)`函数来计算每门课程的平均成绩。最终的结果会按照课程名称进行排序。
courses表包含学生编号,课程编号和学生课程成绩 ,每个学生选修多门课程统计各个课程的选课人数和平均成绩。
可以使用 SQL 语句来实现这个功能,具体的代码如下:
SELECT 课程编号, COUNT(学生编号) AS 选课人数, AVG(学生课程成绩) AS 平均成绩
FROM courses
GROUP BY 课程编号;
这个 SQL 语句会按照课程编号进行分组,然后统计每个课程的选课人数和平均成绩。