我有一個模型Company
和Company
有很多DailyData
。 而DailyData
有列volume
和date
如何使用帶有來自Rails的order子句的postgres AVG()函數
要計算的最近10個工作日內,我寫像平均體積:
class Array
def sum
inject(0) { |result, el| result + el }
end
def mean
sum.to_d/size
end
end
company = Company.first
company.daily_data.order(date: :desc).limit(10).pluck(:volume).mean
此代碼工作正常,但我想使用的Postgres AVG()
功能。
company.daily_data.select('AVG(volume) as average_volume').order(date: :desc)
該代碼最終出現錯誤:
PG::GroupingError: ERROR: column "daily_data.date" must appear in the GROUP BY clause or be used in an aggregate function
,但如果我在方法鏈把.group(:date)
,將SQL reurns多個結果。 如何使用postgresql AVG()
函數獲取最近10卷的平均值?