7. mysql统计所有课程都及格的,并且平均分大于80分的所有学生的成绩
时间: 2023-06-12 08:04:25 浏览: 130
可以通过下列SQL语句实现:
```sql
SELECT s.student_id, AVG(s.score) as avg_score
FROM scores s
WHERE s.course_id NOT IN (
SELECT c.course_id
FROM courses c
WHERE c.min_score > 60
)
GROUP BY s.student_id
HAVING avg_score > 80;
```
这里假设成绩表为 `scores`,包含 `student_id`、`course_id`、`score` 三个字段,课程表为 `courses`,包含 `course_id`、`course_name`、`min_score` 三个字段。其中 `courses.min_score` 表示该门课程及格的最低分数线(假设均为60分),如果某个学生所有选修的课程都及格并且平均分大于80分,则该学生的成绩记录会被统计在查询结果中。
相关问题
mysql查询所有成绩都及格的学生
您可以使用如下的 MySQL 查询语句来查询所有成绩都及格的学生:
```
SELECT student_name
FROM scores
WHERE score >= 60
GROUP BY student_name
HAVING COUNT(*) = (SELECT COUNT(*) FROM scores WHERE score >= 60);
```
这条查询语句首先选择所有分数大于等于60分的记录,并按照学生姓名进行分组。接着使用HAVING子句来筛选出所有满足条件的学生,即分数记录数等于所有分数记录数的学生,最后输出这些学生的姓名。
如何用mysql查询语文的及格学生的平均分。
假设有一个名为"students"的表格,其中包含"name"、"chinese"和"score"三个字段,可以使用以下SQL语句来查询语文及格学生的平均分:
SELECT AVG(chinese) FROM students WHERE chinese >= 60;
该语句将选出"chinese"字段大于等于60的记录,然后计算这些记录的"chinese"字段的平均值。