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