2016-12-24 49 views

回答

-1

我相信你們都準備好看着http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-average

但你不能得到的兩件事情的平均值。

你能做什麼不能重複你的查詢是:

entries = TiEntry.where('ext_trlid = ? AND mat_pidtc = ?', a.trlid, a.pidtc) 
average_mppss = entries.average(:mat_mppss_rprcp) 
average_fppss = entries.average(:mat_fppss_rprcp) 

這樣只會執行查詢一次

我希望這對你的作品

0
e = TiEntry.where('ext_trlid = ? AND mat_pidtc = ?', a.trlid, a.pidtc).select("AVG(mat_mppss_rprcp) AS avg1, AVG(mat_fppss_rprcp) AS avg2").map { |i| [i.avg1, i.avg2] } 

這是爲你工作?它可以像平均方法那樣工作,但是您可以根據需要支持可能的值

這與此處的其他查詢之間的優點是僅使用一個簡單的SQL查詢。其他人使用SQL獲取表中的所有內容(如果表很大,可能需要一些時間),然後計算紅寶石語言的平均值

相關問題