(5) 求平均成绩大于80分的学生姓名;使用MYSQL嵌套查询
时间: 2024-05-12 22:13:52 浏览: 11
假设有两个表,一个是学生表(student),包含学生id(sid)和学生姓名(name)两个字段;另一个是成绩表(score),包含学生id(sid)和成绩(score)两个字段。则可以使用以下嵌套查询语句来求平均成绩大于80分的学生姓名:
```
SELECT name
FROM student
WHERE sid IN (
SELECT sid
FROM score
GROUP BY sid
HAVING AVG(score) > 80
);
```
首先,在内层的查询语句中,使用GROUP BY对成绩表按照学生id进行分组,然后使用HAVING过滤出平均成绩大于80分的学生id。然后,在外层的查询语句中,使用IN子句将符合条件的学生id与学生表连接,最终输出学生姓名。
相关问题
mysql查询平均成绩大于85的学生姓名和平均成绩
假设学生成绩信息存储在名为`scores`的表中,该表包含学生姓名`name`、学号`student_id`、课程名称`course`和分数`score`四个字段,可以使用以下SQL查询语句来查询平均成绩大于85的学生姓名和平均成绩:
```
SELECT name, AVG(score) AS avg_score
FROM scores
GROUP BY student_id
HAVING AVG(score) > 85;
```
该查询语句中,首先使用`GROUP BY`子句将成绩表按照学生进行分组,以便计算每个学生的平均成绩。然后使用`HAVING`子句过滤出平均成绩大于85分的学生记录,并使用`SELECT`子句选择对应的姓名和平均成绩列进行显示。
需要注意的是,由于需要计算平均成绩,查询中使用`AVG()`聚合函数来求每个学生的平均成绩。同时,在`SELECT`子句中使用`AS`关键字来给计算结果起一个别名,以便更好地显示结果。
mysql查询平均成绩大于等于80分以上的学生情况。
您可以使用以下 SQL 命令查询平均成绩大于等于80分以上的学生情况:
```sql
SELECT 学生表.学号, 学生表.姓名, AVG(成绩表.成绩) AS 平均成绩
FROM 学生表, 成绩表
WHERE 学生表.学号 = 成绩表.学号
GROUP BY 学生表.学号, 学生表.姓名
HAVING AVG(成绩表.成绩) >= 80;
```
这将返回平均成绩大于等于80分的学生的学号、姓名和平均成绩信息。使用 `AVG(成绩表.成绩)` 函数计算每个学生的平均成绩,然后使用 `HAVING` 子句对平均成绩进行筛选,只返回平均成绩大于等于80分的学生信息。最后,使用 `GROUP BY` 子句按照学号和姓名进行分组,以方便查看每个学生的信息。