按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分


MySQL的写法:

SELECT p.学生ID,p.数据库,p.企业管理,p.英语,p.有效课程数,ROUND(p.总分/(CASE WHEN p.有效课程数 = 0 THEN 1 ELSE p.有效课程数 END)) 有效平均分 FROM (SELECT t.学生ID 学生ID,     t.数据库 数据库,   t.企业管理 企业管理, t.英语 英语, (CASE WHEN t.数据库 IS NULL THEN 0 ELSE 1 END)+(CASE WHEN t.企业管理 IS NULL THEN 0 ELSE 1 END)+(CASE WHEN t.英语 IS NULL THEN 0 ELSE 1 END) 有效课程数, IFNULL(t.数据库,0)+IFNULL(t.企业管理,0)+IFNULL(t.英语,0) 总分 FROM (SELECT stu.sid 学生ID, s.c 数据库,q.c 企业管理,y.c 英语 FROM student stu LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName ='数据库') s ON stu.sid=s.n LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName ='企业管理') q ON stu.sid=q.n LEFT JOIN (SELECT sc.sid n,sc.score c FROM sc ,course c WHERE sc.cid=c.cid AND c.cName ='英语') Y ON stu.sid=y.n )t )p ORDER BY 有效平均分 DESC;

MySQL判断为null,写法为is null,而不是  t.数据库 = NULL 

IFNULL(expr1,expr2)

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 练习9--检索"01"课程分数小于60,按分数降序排列的学生信息 | 按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。) 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数) java例题_50 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 有一个班4个学生,5门课程 ①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩; ③找出平均成绩在90分以上或全部课程成绩在85分以上的学生 分别编3个函数实现以上3个要求 练习10 -- 查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率 --及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90 2017.4.20实验三:2、定义一个包含学生学号、姓名、年龄和三门课成绩的结构体,输入10个学生信息,并按总成绩由高到低的顺序排序并输出。 python实现:写一个班级的类, 存储班里人数,统计班级里各学科的总分的最高分、各学科的平均分; 写班级里的学生类,存储学生所有成绩, 计算某个学生的全部课程的平均分、全部课程的总分、全部课程的最高分 代码实现:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 按各科平均成绩从低到高和及格率的百分数从高到低顺序
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM