mysql查询查询每个学生的平均成绩,要求显示学号、姓名、分数,无成绩的学生不显示。
时间: 2024-10-14 21:15:36 浏览: 76
java swing mysql实现的学生选课成绩信息管理系统.zip
在MySQL中,你可以使用子查询或者LEFT JOIN来完成这个任务。假设有一个名为`students`表,包含`student_id`, `name`字段,以及一个名为`scores`的关联表,其中`student_id`是主键,`scores_table`包含`student_id`, `score`字段。那么可以使用以下SQL语句:
```sql
SELECT s.student_id, s.name, COALESCE(avg_score, '无成绩') AS 平均成绩
FROM students s
LEFT JOIN (
SELECT student_id, AVG(score) AS avg_score
FROM scores_table
GROUP BY student_id
) sc ON s.student_id = sc.student_id
WHERE sc.score IS NOT NULL;
```
这里,我们首先通过LEFT JOIN将`students`表和计算平均分的子查询`sc`连接起来。COALESCE函数用于处理NULL值,如果学生有成绩,则返回平均分;如果没有成绩(即score IS NULL),则显示"无成绩"。
阅读全文