モデル内の 2 番目の変数に基づいて、モデル内の変数の加重平均を計算しようとしていますが、ActiveRecord を使用して計算する方法が見つかりません。
class Employer < ActiveRecord::Base
attr_accessible :name, :number_of_employees, :average_age
def self.wt_avg_age
#return sum(number_of_employee * average_age)/sum(number_of_employees)
end
end
ストレート SQL では、次を使用します。
SELECT id, SUM(number_of_employees*average_age)/SUM(number_of_employees)
FROM employer
GROUP BY name
雄弁な方法で ActiveRecord リレーションに対してこのようなことを実行できますか? .select()、.pluck()、および sum() を使用してさまざまな組み合わせを試しましたが、うまくいきませんでした。ActiveRecord オブジェクトで sumproduct を実行するのに問題があります。