sql 学生姓名科目成绩表,求平均分90分以上的 ,举例说明?
时间: 2023-06-10 07:03:22 浏览: 465
可以使用以下SQL语句来查询学生姓名、科目及其成绩,并按照姓名和科目进行分组,最后筛选出平均分大于等于90分的数据:
```
SELECT 学生姓名, 科目, AVG(成绩)
FROM 学生表
GROUP BY 学生姓名, 科目
HAVING AVG(成绩) >= 90;
```
例如,如果学生表包含如下数据:
| 学生姓名 | 科目 | 成绩 |
|--------|-------|--------|
| 张三 | 语文 | 85 |
| 张三 | 数学 | 92 |
| 李四 | 语文 | 92 |
| 李四 | 数学 | 90 |
| 王五 | 语文 | 90 |
| 王五 | 数学 | 88 |
使用上述SQL语句查询的结果为:
| 学生姓名 | 科目 | AVG(成绩) |
|----------|-------|-------------|
| 李四 | 语文 | 92 |
| 李四 | 数学 | 90 |
| 王五 | 语文 | 90 |
其中,李四的平均分为91分,王五的平均分为90分,满足条件的数据为李四和王五的成绩记录。
相关问题
成绩表里面有多门课程,要查询平均分最高的学生姓名sql
可以使用以下 SQL 语句查询平均分最高的学生姓名:
```
SELECT name
FROM scores
GROUP BY name
ORDER BY AVG(score) DESC
LIMIT 1;
```
其中,`scores` 是成绩表的表名,包含学生姓名和对应的分数,`name` 是学生姓名的列名,`score` 是分数的列名。`GROUP BY name` 按学生姓名进行分组,`AVG(score)` 计算每个学生的平均分,`ORDER BY AVG(score) DESC` 按平均分降序排序,`LIMIT 1` 取排序后的第一条记录,即平均分最高的学生姓名。
sql查询成绩表中平均成绩最高的学生姓名
假设成绩表的表名为score,包含字段为student_name和score,可以使用以下SQL语句查询平均成绩最高的学生姓名:
```
SELECT student_name
FROM score
GROUP BY student_name
ORDER BY AVG(score) DESC
LIMIT 1;
```
这条SQL语句会先按照学生姓名分组,然后计算每个学生的平均成绩,并按照平均成绩降序排列,最后只返回第一行结果,也就是平均成绩最高的学生姓名。