mysql 查询每个学生的各科成绩的平均分
时间: 2023-05-27 10:01:03 浏览: 541
假设有如下的学生成绩表(表名为 grades):
| id | name | course | score |
| --- | ---- | -------- | ----- |
| 1 | 张三 | English | 80 |
| 2 | 张三 | Math | 90 |
| 3 | 李四 | English | 70 |
| 4 | 李四 | Math | 85 |
| 5 | 王五 | English | 90 |
| 6 | 王五 | Math | 95 |
则可以使用如下的 SQL 语句查询每个学生的各科成绩的平均分:
```
SELECT name, AVG(score) AS average_score
FROM grades
GROUP BY name;
```
执行结果为:
| name | average_score |
| ---- | ------------ |
| 张三 | 85 |
| 李四 | 77.5 |
| 王五 | 92.5 |
说明:使用 AVG() 函数对每个学生的成绩进行求平均值操作,同时使用 GROUP BY 子句将成绩按照学生姓名分组。注意,需要将学生姓名也包含在查询结果中,使用 SELECT 子句选择 name 和平均分。
相关问题
mysql统计每个学生的各科成绩
可以使用以下SQL语句来统计每个学生的各科成绩:
```
SELECT
student_id,
SUM(CASE WHEN subject = '数学' THEN score ELSE 0 END) AS math_score,
SUM(CASE WHEN subject = '语文' THEN score ELSE 0 END) AS chinese_score,
SUM(CASE WHEN subject = '英语' THEN score ELSE 0 END) AS english_score
FROM
score_table
GROUP BY
student_id;
```
这条SQL语句会将成绩表(假设表名为score_table)按照学生ID进行分组,然后使用SUM函数和CASE语句来统计每个学生的各科成绩。具体来说,对于每个学生,这条SQL语句会分别计算该学生在数学、语文、英语三门科目中的总成绩,并将这些成绩作为新的列(math_score、chinese_score、english_score)输出。
mysql查询每个同学平均成绩
你可以使用以下 SQL 语句查询每个同学的平均成绩:
```
SELECT student_id, AVG(score) AS avg_score
FROM scores
GROUP BY student_id;
```
假设你有一个名为 `scores` 的数据表,其中包含学生成绩和学生 ID。这个查询语句将按学生 ID 分组,并计算每个学生的平均分数。最终结果将返回一个表格,其中包括学生 ID 和对应的平均分数。