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

JMo*_*use 5 sql oracle database-design

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

modules 与字段:

  • module_code例如.INF211
  • module_title例如.信息技术
  • credits eg.20

module_progress 与字段:

  • student_id例如.STU1
  • module_code例如.INF211
  • module_year例如.1
  • module_percent例如.65

每个学生每年需要5个模块.

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

  1. 查找特定学生的模块百分比总和
  2. 查找每个模块关于其模块百分比的所有信用额的总和.
  3. 将模数百分比的总和除以信用总和并乘以100得到平均等级.

可以这样做吗?

Qua*_*noi 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
Run Code Online (Sandbox Code Playgroud)