本文主要是介绍按各科平均成绩从低到高和及格率的百分数从高到低顺序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这道题其实也很简单,我把数据弄到数据库里调试了好一会才做出来的
用到了前面一道题学到的通过select自己创建一个表拿来用的方法。
然后我一开始把课程号误以为是SId,卡了好久。
这道题其实不需要course表,因为题目要的是课程号和对应的该课程的平均分和及格率。
另外要注意 排序规则是 按照及格百分率从高到低再按照平均分从低到高排序的。
我首先用select语句创建了一个辅助表,为的是把一个课程的及格的人数和该课程总人数求出来,用于最外层计算及格百分率。其中还查了CId是为了把自己创建的t表和sc表通过连起来。
这里我测试了自己创建的t表,可以正确查出每个课程的及格人数和总人数。
然后我们把t表拿到来用,通过 (t.jihe / t.num)*100获得及格百分数。
注意最后的排序
即可
代码:
select sc.CId 课程号,avg(score) 平均成绩,(t.jige/t.num)*100 及格百分数
from sc,(select CId,count(case when score>=60 then 1 end) jige,count(*) numfrom scgroup by CId
) t
where t.CId = sc.CId
group by t.CId
order by 及格百分数 desc,平均成绩
这篇关于按各科平均成绩从低到高和及格率的百分数从高到低顺序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!