仅获取特定日期范围的平均值

Posted

技术标签:

【中文标题】仅获取特定日期范围的平均值【英文标题】:Get average for only a certain date range 【发布时间】:2013-01-04 01:31:50 【问题描述】:

在具有过去十年每小时交易价格的数据库中,以下查询将按天对价格进行分组,生成每日平均价格,并在数据库中返回每天的平均价格:

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

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

【问题讨论】:

【参考方案1】:

这样的事情应该可以工作:

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

【讨论】:

谢谢米莎!完美运行。我一直在尝试这样做一个小时,但是用不正确的语法链接它们。你有所作为。干杯:) @ac360 如果这回答了你的问题,别忘了accept it。

以上是关于仅获取特定日期范围的平均值的主要内容,如果未能解决你的问题,请参考以下文章

如何仅获取特定行的列均值?

SQL查询以获取时间范围列表的平均值

平均日期的sql特征函数

Pandas DataFrame:如何获取列平均值但仅考虑索引低于我想要获取平均值的行

根据日期范围计算运行平均值

根据日期范围计算滚动平均值[重复]