为了计算表中学生的SGPA,公式是某一学生在特定学期注册的每门课程的3级和除以no.of课程。
我有一个名为All_Registration的表,其字段和数据如下所示
╔════════════╦═════════════╦════════╦════════════╗
║ STUDENT_ID ║ SEMESTER ║ COURSE ║ GRADEPOINT ║
╠════════════╬═════════════╬════════╬════════════╣
║ i090170 ║ Fall 2000 ║ 200 ║ 3.67 ║
║ i090170 ║ Fall 2000 ║ 201 ║ 2.67 ║
║ i090170 ║ Fall 2000 ║ 203 ║ 2 ║
║ i090170 ║ Fall 2000 ║ 205 ║ 4 ║
║ i090170 ║ Fall 2000 ║ 209 ║ 3.67 ║
║ i090170 ║ Fall 2000 ║ 211 ║ 3 ║
║ i090170 ║ spring 2000 ║ 200 ║ 3.67 ║
║ i090170 ║ spring 2000 ║ 201 ║ 2.67 ║
║ i090170 ║ spring 2000 ║ 203 ║ 2 ║
║ i090170 ║ spring 2000 ║ 205 ║ 4 ║
║ i090170 ║ spring 2000 ║ 209 ║ 3.67 ║
╚════════════╩═════════════╩════════╩════════════╝注:学生可在第五或第六学期选修多门课程。
我这样做的是,我计算了数字。学生在一学期内选修的课程
select abc
from
(
select Student_Id,Semester, count(distinct Courses) as abc
from All_Registration B
group by Student_Id,Semester
)A;这将返回学生在一学期内参加的不同课程的数量。
现在我想计算SGPA。我想对每个学生的每个学期进行如下查询:
所有课程的总和(课程的年级点*3))该学生每学期的/no.of课程
发布于 2012-12-31 06:19:09
尝尝这个,
select sum(Gradepoint*3)/count (distinct course) as gpa
from All_Registration group by Student_Id,Semester
or
select (3*sum(Gradepoint))/count (distinct course) as gpa
from All_Registration group by Student_Id,Semester抽样结果:
GPA
36927.03
12049.02注意:我没有把你所有的数据都包括在内。因此,这个结果将与您期望的不同。
SQL Fiddle演示
https://stackoverflow.com/questions/14098114
复制相似问题