【sql语句】查询某一个学生的大学每年的平均绩点

1.要求:以一个同学为例,计算出某一年度的平均绩点,以sql语句的形式输出、

 

2.绩点求法:相应科目绩点乘相应科目学分,求和,

(sc_gpa * sc_course_credit)/(sum(sc_course_credit))

然后除所有学分的和,就是你的平均绩点。

学分越高的科目对平均绩点影响越大

 

3.步骤:

(1)先查询该学生这一年的成绩

select sc_student_name as 学生姓名,sc_course_name as 课程名称,

sc_course_credit as 课程学分,sc_gpa as 课程绩点

from t_score

where sc_student_id = "1120108116"

and sc_edu_year = "2015-2016";

 

(2)然后根据绩点算法算出该学生这一年的平均绩点

 

 

查询实例

select sc.`学生姓名`,

sum(sc.课程学分 * ifnull(sc.课程绩点,0))/sum(sc.`课程学分`) as 平均绩点

from (select sc_student_name as 学生姓名,sc_course_name as 课程名称,

sc_course_credit as 课程学分,sc_gpa as 课程绩点

from t_score

where sc_student_id = "1120108116"

and sc_edu_year = "2015-2016" ) as sc

where 1=1;

group by sc.`学生姓名`;

 

 

 

 

继续考虑小数点的取舍,修改查询语句

select sc.`学生姓名`,

round(sum(sc.课程学分 * ifnull(sc.课程绩点,0))/sum(sc.`课程学分`),1) as 平均绩点

from (select sc_student_name as 学生姓名,sc_course_name as 课程名称,

sc_course_credit as 课程学分,sc_gpa as 课程绩点

from t_score

where sc_student_id = "1120108116"

and sc_edu_year = "2015-2016" ) as sc

where 1=1;

group by sc.`学生姓名`;

 

全部评论

相关推荐

醒工硬件:1学校那里把xxxxx学院去了,加了学院看着就不像本校 2简历实习和项目稍微精简一下。字太多,面试官看着累 3第一个实习格式和第二个实习不一样。建议换行 4项目描述太详细了,你快把原理图贴上来了。比如可以这样描述:使用yyyy芯片,使用xx拓扑,使用pwm控制频率与占空比,进行了了mos/电感/变压器选型,实现了xx功能 建议把技术栈和你做的较为有亮点的工作归纳出来 5熟悉正反激这个是真的吗
点赞 评论 收藏
分享
03-03 10:35
3d人士会梦见住进比弗利山庄吗:这四个项目属于是初学者的玩具了。不知道面试官咋问,而且双非本搞算法除了9,还是保守至少c9
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务