本题目要求编写SQL语句, 在stu表 和 sc表 中查询所有学生的平均成绩,如果某学生尚未选修课程或成绩为空时,平均分计为0。
时间: 2024-06-18 08:02:41 浏览: 290
【SQL语句练习】(一) 查询学生获得的总学分
4星 · 用户满意度95%
可以使用左连接和聚合函数来实现该查询:
```
SELECT stu.id, COALESCE(AVG(sc.score), 0) AS avg_score
FROM stu
LEFT JOIN sc ON stu.id = sc.id
GROUP BY stu.id;
```
上述 SQL 语句中,使用了 LEFT JOIN 将 stu 表与 sc 表连接起来,保证了即使学生尚未选修课程或成绩为空时,该学生也会出现在结果集中。然后使用 AVG 函数计算每个学生的平均成绩,并使用 COALESCE 函数将 NULL 值转换为 0。最后,使用 GROUP BY 子句对每个学生进行分组,得到每个学生的平均成绩。
阅读全文