mysql学生考试成绩低于本门课程平均成绩的学生
时间: 2023-11-15 08:02:12 浏览: 777
要查询学生考试成绩低于本门课程平均成绩的学生,需要使用以下SQL语句:
SELECT s.sname AS 姓名, sc.scgrade AS 成绩
FROM s, sc, c
WHERE s.sno = sc.sno AND sc.cno = c.cno AND sc.scgrade < (SELECT AVG(sc1.scgrade) FROM sc AS sc1 WHERE sc1.cno = c.cno)
ORDER BY c.cno, sc.scgrade DESC;
这个SQL语句使用了子查询来获取每门课程的平均成绩,然后将学生的成绩与平均成绩进行比较,只返回低于平均成绩的学生成绩信息。同时,使用了ORDER BY语句按照课程编号和成绩降序排列结果。
相关问题
MySQL中用查询工具查询查询参加计算机基础课程考试的学生成绩高于课程平均分的学 中 生信息
在MySQL中,你可以使用SELECT语句结合GROUP BY、HAVING和JOIN来获取满足条件的学生信息。首先,假设你有两个表,一个是`students`(包含学生ID和姓名),另一个是`grades`(包含学生ID、课程名称和成绩)。你需要找到参加了“计算机基础课程”并且成绩高于该课程平均分的学生。以下是SQL查询示例:
```sql
SELECT s.student_id, s.name
FROM students s
JOIN grades g ON s.student_id = g.student_id
WHERE g.course_name = '计算机基础课程'
GROUP BY s.student_id, s.name
HAVING AVG(g.score) < g.score;
```
这个查询做了以下操作:
1. 使用JOIN将`students`表和`grades`表连接起来,基于学生的ID匹配数据。
2. WHERE子句限制了只选择课程名为“计算机基础课程”的记录。
3. GROUP BY按学生ID和姓名分组,这样每个学生的成绩会被聚合到一起。
4. HAVING子句用于在分组后过滤出那些其平均成绩低于他们个人成绩的学生。
阅读全文