RoR組み込みで平均を見つける方法を知るためのリソースを調べましたaverage
ActiveRecord::Calculations。私はまた、平均を計算する方法に関するアイデアをオンラインで見てきました:Rails calculate and display average。Rails:小さな要素集合の平均を計算する方法
しかし、データベース列から要素の集合の平均を計算する方法についての参照は見つかりません。コントローラで
:@jobpostings = Jobposting.all
@medical = @jobpostings.where("title like ? OR title like ?", "%MEDICAL SPECIALIST%", "%MEDICAL EXAMINER%").limit(4).order('max_salary DESC')
@medical_salary = "%.2f" % @medical.average(:max_salary).truncate(2)
@medicalリターンは:
CITY MEDICAL SPECIALIST
220480.0
CITY MEDICAL EXAMINER (OCME)
180000.0
CITY MEDICAL SPECIALIST
158080.0
CITY MEDICAL SPECIALIST
130000.0
私は:max_salary
の平均(役職名の下に正しく表示されて各1)を見つけたいです。私は@medical_salary = "%.2f" % @medical.average(:max_salary).truncate(2)
を使用してBigDecimalの数値を変換し、:max_salary
の平均を@medical
から見つけました。これは、上に表示されたトップ4に限定されると考えました。
しかし、返される結果は次のとおりです。72322.33
、(私がチェック)、代わりにトップ4
の列全体の平均は、これは私は別の条件を追加する必要がありますか? @medical
の平均値が列全体の平均を返すのはなぜですか?
洞察が役立ちます。ありがとう。 limit(4)
がメソッドチェーンに以前に表示されていても、
結果を得るために実行されているSQLクエリを共有できますか?また、 'have'と' where'(一見して、私はそれが関連しているとは確信していませんが、私はまだあなたの問題を完全に突き止めていません)を見てみる価値があるかもしれません:http://stackoverflow.com/questions/9253244/sql-having-vs-where – coreyward