0

テーブル内の学生の SGPA を計算する式は、特定の学生が特定の学期に登録したすべてのコースの 3*gradepoint の合計であり、この合計をコース数で割ったものです。

次のようなフィールドとデータを持つ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       ║
╚════════════╩═════════════╩════════╩════════════╝

注: 学生は学期中に複数のコース、つまり 5 または 6 のコースを受講できます。

私がやったことは、いいえを計算したということです。学期中に学生が受講したコースの

select abc
from
(
    select Student_Id,Semester, count(distinct Courses) as abc
    from All_Registration B
    group by Student_Id,Semester
)A;

これは、学期中に学生が受講した個別のコースの数を返します

今私はSGPAを計算したい。各学生の学期ごとに次のことができるクエリを作成したい:

「すべてのコースの合計(コースの成績ポイント * 3))/その学生の学期あたりのコース数」

4

1 に答える 1

1

これを試して、

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 フィドルのデモ

于 2012-12-31T06:19:09.943 に答える