У меня есть такой способ:
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
без изменения типа столбца?