对于 rails 中的特定条件,我如何划分两列的总和

How can I divide sum for a of two column for a certain condition in rails

我想创建一个结果系统。 我如何计算一个学期的 cgpa。

我试图只显示 cgpa 搜索学期的那些以及主题详细信息。

该 cgpa 的计算结果是:Sum(credit*gpa)/Sum(credit)

我已将学分*gpa 保存在主题 table 的列中。

我可以使用

找到正常的 cgpa
<small class="text-warning">cgpa = <%= Subject.sum(:cXgpa)/ Subject.sum(:credit) %></small>** But I need to find it for semester searched

table 是

t.string "subject_name"
t.string "subject_code"
t.float "credit"
t.float "gpa"
t.float "cXgpa"
t.integer "semester_id"

我用这个找到了

<small class="text-warning">cgpa = <%=  Subject.pluck('sum(subjects.cXgpa) /    sum(credit)').where(:semester_id=>params[:semester]) %></small>

但是出现这个错误

PG::UndefinedColumn: ERROR:  column subjects.cxgpa does not exist

第 1 行:SELECT sum(subjects.cXgpa) / sum(credit) FROM "subjects"

这应该有效

Subject.where(semester_id: params[:semester]).pluck("sum(cxgpa) / sum(credit)")

我们应该将散列写为 { key: value } 而不是使用 => 并且您不需要在 sum 子句中包含 subjects 因为您只需要处理1 table