Verwendung habe ich Methode wie folgt:Wie PG :: NumericValueOutOfRange zu vermeiden, wenn Summenfunktion
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
Wenn die Säule ein decimal
ist, ist es noch ein Wert ohne Problem zurückgibt. Aber wenn die Spalte integer
ist, endet die Methode mit einem PG::NumericValueOutOfRange
Fehler.
Sollte ich den Spaltentyp integer
zu decimal
ändern, oder gibt es eine Möglichkeit, das Ergebnis sum
ohne Änderung des Spaltentyps zu erhalten?
'column' ist Spaltenname eines Modells in Dezimalzahlen. Das ist nur 'String' oder' Symbol'. – ironsand