查询平均成绩大于75分的课程的课程号、课程名、平均分。
时间: 2023-08-02 08:05:42 浏览: 353
假设你使用的是 MySQL 数据库,以下是查询语句:
```
SELECT c.cno, c.cname, AVG(s.score) AS avg_score
FROM course c
JOIN score s ON c.cno = s.cno
GROUP BY c.cno, c.cname
HAVING AVG(s.score) > 75;
```
解释:
首先使用 JOIN 将课程表和成绩表连接起来,然后按照课程号和课程名进行分组,计算每个课程的平均分,并且筛选出平均分大于 75 的记录。最后选择课程号、课程名和平均分作为输出结果。
相关问题
使用exists查询平均分大于85的课程名
可以使用以下SQL语句进行查询:
```
SELECT course_name
FROM course
WHERE EXISTS (
SELECT *
FROM score
WHERE course.course_id = score.course_id
GROUP BY score.course_id
HAVING AVG(score) > 85
)
```
其中,`course` 表表示课程信息,包括 `course_id` 和 `course_name` 两个字段;`score` 表表示学生成绩信息,包括 `student_id`、`course_id` 和 `score` 三个字段。以上SQL语句中,先在 `score` 表中按 `course_id` 进行分组并计算平均分,然后在 `course` 表中使用 `EXISTS` 子查询,查询所有平均分大于85的课程名。
使用exists查询平均分大于85课程名mysql语句
假设你的学生成绩表名为`scores`,包含以下字段:`student_id`(学号)、`course_name`(课程名)、`score`(分数)。
使用`EXISTS`查询平均分大于85的课程名的MySQL语句如下:
```
SELECT DISTINCT course_name FROM scores s1
WHERE EXISTS (
SELECT * FROM scores s2
WHERE s2.course_name = s1.course_name
GROUP BY s2.course_name
HAVING AVG(s2.score) > 85
);
```
首先我们在`s1`中查询所有的课程名,然后通过`EXISTS`子查询判断该课程名对应的记录中是否存在平均分大于85的记录(使用`HAVING`子句进行平均分的筛选),如果存在,就将该课程名返回(使用`DISTINCT`去重)。