学生表和学生成绩表,用SQL求没个班级任意一科不及格的人数
时间: 2023-05-24 20:04:59 浏览: 122
一个题查询50句.docx
假设学生表的表名为"students",学生成绩表的表名为"scores",学生表中的班级信息保存在"classes"字段中,学生成绩表中的科目信息保存在"subjects"字段中,分数信息保存在"scores"字段中。
SQL查询语句如下:
SELECT COUNT(*) FROM students WHERE classes IN
(SELECT classes FROM students GROUP BY classes HAVING COUNT(DISTINCT subjects) != COUNT(DISTINCT CASE WHEN scores < 60 THEN subjects END));
解释如下:
- 内层查询:根据班级分组,计算每个班级中不及格的科目数,如果不及格的科目数等于该班级总科目数,则表示有任意一科不及格的学生,该班级会被查询出来。
- 外层查询:统计所有符合条件的班级中不及格的学生数量,并返回结果。
阅读全文