查询每门成绩都大于80分的同学学号

查询每门成绩都大于80分的同学学号,假设成绩表中存了学生学号sno、课程编号cno、成绩degree。

关于这个题目的四种解题思路,如下:

1、按学号分组,然后找最低分大于80分的
SELECT sno
FROM score
GROUP BY sno
HAVING min(degree)>80;

2、先找出成绩存在80分以下的,然后再排除

SELECT DISTINCT sno
FROM score
WHERE sno NOT in(SELECT sno
FROM score
WHERE degree<=80);
3、使用EXISTS
SELECT sno
FROM score a
WHERE NOT EXISTS (SELECT sno
FROM score b
WHERE degree<=80 AND a.sno=b.sno)

4、找出所有成绩都大于80分
SELECT DISTINCT sno
FROM score a
WHERE 80<all(SELECT degree FROM score b WHERE a.sno=b.sno )

posted @ 2025-10-24 17:27  板栗+  阅读(12)  评论(0)    收藏  举报