SQL查询有两门以上不及格的学生及查询出全部及格的学生
Posted 程序员自我修养张振力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL查询有两门以上不及格的学生及查询出全部及格的学生相关的知识,希望对你有一定的参考价值。
1、表结构:
/*学生*/ create table student( sno int not null primary key, sname varchar(10) ); /*课程*/ create table center( cno int not null primary key, cname varchar(10) ); /*分数*/ create table sgrade( sno int , cno int , sgrade int );
2、插入数据:
insert into student values(11,‘a‘); insert into student values(12,‘b‘); insert into student values(13,‘c‘) insert into center values(21,‘aa‘); insert into center values(22,‘bb‘); insert into center values(23,‘cc‘) insert into sgrade values(11,21,54); insert into sgrade values(12,22,57); insert into sgrade values(11,21,51); insert into sgrade values(12,21,36); insert into sgrade values(11,21,28); insert into sgrade values(12,22,42); insert into sgrade values(11,21,59) insert into sgrade values(11,21,79); insert into sgrade values(12,22,85); insert into sgrade values(11,21,90); insert into sgrade values(12,21,96); insert into sgrade values(11,21,98); insert into sgrade values(12,22,94); insert into sgrade values(11,21,99)
3、查询出有两门以上不及格的学生:
SELECT s.sno,s.sname from student s LEFT JOIN sgrade g on s.sno=g.sno WHERE g.sgrade<60 GROUP BY s.sno HAVING COUNT(s.sno)>2
4、查询出全部及格的学生:
SELECT * FROM student WHERE sno not in ( SELECT s.sno from student s LEFT JOIN sgrade g on s.sno=g.sno WHERE g.sgrade<60 )
以上是关于SQL查询有两门以上不及格的学生及查询出全部及格的学生的主要内容,如果未能解决你的问题,请参考以下文章
sql 语句编写 查询参加全部科目考试的学生及其成绩 201601 张三 语文 82
用SQL做了一个学生成绩管理的数据库,怎么查询成绩不及格的学生的学号和姓名啊
C语言 有三个学生,各学四门课,计算总平均分数和第n个学生的成绩并查找一门以上课程不及格的学生,输出不及格学生的全部课程成绩