运用MySQL语句:查询所有同学的平均成绩及选课门数,要求显示学生的学号s_no、姓名s_name、平均成绩(将该列定名为average_score)、选课的门数(将该列定名为:choice_num)
时间: 2024-03-21 12:44:25 浏览: 230
查看学生各课程考试成绩平均分.sql
好的,这道题需要使用到MySQL的聚合函数和子查询。下面是 SQL 语句:
```
SELECT
s_no,
s_name,
AVG(score) AS average_score,
COUNT(DISTINCT c_no) AS choice_num
FROM
score,
student
WHERE
score.s_no = student.s_no
GROUP BY
s_no;
```
解释一下这个 SQL 语句的主要步骤:
1. `FROM` 语句将 `score` 表和 `student` 表连接在一起。
2. `AVG()` 聚合函数计算每个学生的平均成绩,并将结果命名为 `average_score`。
3. `COUNT(DISTINCT c_no)` 计算每个学生选课的门数,并将结果命名为 `choice_num`。
4. `GROUP BY` 子句根据学号进行分组,确保每个学生只出现一次。
希望这个回答能够帮到你。
阅读全文