计算一行的总和并除以另一行的总和。 Oracle视图/查询

时间:2011-04-30 20:28:37

标签: sql oracle database-design

这是我在这里的第一个问题,请耐心等待。我的Oracle数据库中有两个表如下:

带有字段的

modules

  • module_code例如。 INF211
  • module_title例如。信息技术
  • credits eg.20
带有字段的

module_progress

  • student_id例如。屋顶盒1
  • module_code例如。 INF211
  • module_year例如。 1
  • module_percent例如。 65

每个学生每年需要5个单元。

所以这就是我想在可能的情况下将其全部放在一个查询/视图中:

  1. 查找特定学生的模块百分比总和
  2. 查找每个模块关于其模块百分比的所有学分的总和。
  3. 将学分百分比的总和除以学分并乘以100得到平均成绩。
  4. 可以这样做吗?

1 个答案:

答案 0 :(得分:1)

SELECT  student_id,
        SUM(credits * module_percent) / SUM(credits) * 100.0
FROM    module_progress mp
JOIN    modules m
ON      m.module_code = mp.module_code
GROUP BY
        student_id