首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算Rails中列值的平均值

计算Rails中列值的平均值
EN

Stack Overflow用户
提问于 2016-12-01 01:55:08
回答 3查看 7.8K关注 0票数 2

我对有点陌生。我有一个has_many课程的个人资料模型。

代码语言:javascript
复制
create_table "profiles", force: :cascade do |t|
   t.string   "pname"
   t.float    "current_gpa"
end

代码语言:javascript
复制
create_table "courses", force: :cascade do |t|
   t.integer  "course_number"
   t.float    "gpa"
end

我想计算平均gpa: current_gpa =所选课程的gpa之和/所选课程的数值。我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-01 02:24:16

你应该考虑阅读一些文档--显然很快就能得到答案,但有时文档会引导你找到你不知道要找或不想要的东西。

也就是说,最快的方法是使用平均值

代码语言:javascript
复制
profile.courses.average(:gpa)

这会给你一个平均值。或者你可以用很长的路去做,如果出于某种原因,你需要在两者之间做些修改。

代码语言:javascript
复制
profile.courses.sum(:gpa) / profile.courses.count
票数 11
EN

Stack Overflow用户

发布于 2019-09-30 19:03:51

还有一张纸条..。平均值返回浮点数或BigDecimal,通常用十进制表示法表示。这可能是混乱的,可能不是你想要的。您可以探索添加这样的内容:.to_int、.to_f、.truncate、.round等等.

代码语言:javascript
复制
Person.average(:age) # => 0.387e2
Person.average(:age).to_i # => 38
Person.average(:age).to_f # => 38.7
Person.average(:age).to_f.round # => 39
票数 6
EN

Stack Overflow用户

发布于 2016-12-01 02:20:59

您可以使用ActiveRecord::计算平均值

代码语言:javascript
复制
profile.courses.average(:gpa)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40901363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档