频道栏目
首页 > 资讯 > SQL Server > 正文

sql语句查询某一个学生的大学每年的平均绩点(实例教程)

18-07-17        来源:[db:作者]  
收藏   我要投稿

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.`学生姓名`;

相关TAG标签
上一篇:MySQL关于「列属性之自动增长」的简单教程
下一篇:关于JSP内置对象get和post的区别讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站