【发布时间】:2016-09-14 08:17:22
【问题描述】:
我有这样的方法:
def self.weighted_average(column)
sql = "SUM(#{column} * market_cap) / SUM(market_cap) as weighted_average"
Company.select(sql).to_a.first.weighted_average
end
当列是decimal 时,它会毫无问题地返回一个值。
但是当列为integer 时,该方法最终会出现PG::NumericValueOutOfRange 错误。
我应该将列类型integer 更改为decimal,还是有办法在不更改列类型的情况下获得sum 的结果?
【问题讨论】:
标签: sql ruby-on-rails postgresql