如何从成绩和学分中计算出GPA?

时间:2014-12-23 12:30:29

标签: sql postgresql select group-by aggregate-functions

我想根据成绩和学分计算每个学生的GPA。我已经执行了类似的事情

SET GPA=(SELECT((t.grade*c.credits)/c.credits)
FROM Student s, Take t, Courses c
WHERE s.sid=t.sid and t.cid=c.cid)

它不起作用。 Select查询的结果有很多行。所以我无法做到这一点。我的桌子是这样的:

  • 拿(sid,cid,grade)
  • 当然(cid,credits)
  • 学生(sid,gpa)

我正在使用PostgreSQL。

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT s.sid, (SUM(t.grade * c.credits) / SUM(t.credits)) AS GPA
FROM Student s
INNER JOIN Take t ON s.sid = t.sid 
INNER JOIN Courses c ON t.cid = c.cid
GROUP BY s.sid