2013-01-04 95 views
2

在过去十年每小时交易价格的数据库中,以下查询将按天分组价格,生成日均价格,并返回数据库中每一天的平均价格:仅获得某个日期范围内的平均值

Trade.average(:price, :group => "DATE_TRUNC('day', date)") 

但是,这将返回一个非常大的响应,我只需要得到过去7天的平均价格。我可以在这个查询中添加什么,仅对date列中给出的最近7天的数据进行平均?

回答

4

像这样的东西应该工作:

Trade.where('date >= ?', 7.days.ago).average(:price, :group => "DATE_TRUNC('day', date)") 
+1

谢谢米沙!完美的作品。我一直试图做一个小时,但用不正确的语法来链接它们。你有所作为。欢呼:) – ac360

+0

不客气。很高兴工作! – Mischa

+0

@ ac360如果这回答了您的问题,请不要忘记[接受它](http://meta.stackexchange.com/a/5235/158402)。 –

相关问题