私は、要求があります。ActiveRecordのAVG計算
Model.group(:p_id).pluck("AVG(desired)")
=> [0.77666666666666667e1, 0.431666666666666667e2, ...]
を私はSQL
SELECT AVG(desired) AS desired
FROM model
GROUP BY p_id
を実行したとき、私はその理由は何
-----------------
| desired |
|-----------------|
| 7.76666666666667|
|43.1666666666667 |
| ... |
-----------------
を得ましたか。確かに私は繁殖することができますが、どこに説明があるべきかを賭けています。
Model.group(:p_id).pluck("p_id, AVG(desired)")
この場合には、正しいAVG値を取得する方法:私の要求があるので
私は
Model.group(:p_id).pluck("AVG(desired)").map{|a| a.to_f}
=> [7.76666666666667,43.1666666666667, ...]
は今、私は他のタスクとの闘いだことがわかった、私は摘むの数値属性を必要とします?
MUが-ある-にショート は、あなたの答えをありがとう、それは良い説明だが、どこ二つのものです:私はまだ私は6を持っている原因摘む使用する必要がBigDecimalの 2と 1.あなたのコードの戻りハッシュ異なる分野での異なる計算。 –
しかし、BigDecimalの問題点は何ですか? –