【问题标题】:Average sales price for each day每天的平均销售价格
【发布时间】:2013-01-03 19:12:13
【问题描述】:

我有一个带有 PostgreSQL 数据库销售表的 Rails 应用程序,如下所示:

              Sales
price(decimal)   date(datetime)
100.20           11/25/2012 11:00:00
30.43            11/26/2012 03:00:00
124.43           11/25/2012 18:00:00
190.34           11/26/2012 22:00:00

数据库有数千条这样的记录,跨越 10 年。

我需要找到每天的平均销售价格,并通过 rake 任务将每个记录作为单独的记录保存在另一个数据库表中。

为了更清楚起见,需要按天对销售额进行分组(即使数据是日期时间格式),然后需要对当天的价格值进行平均。

由于我有 10 年的时间,因此必须能够循环遍历每个每日组并计算平均值。

有人对如何写这个有任何建议吗?

【问题讨论】:

    标签: ruby-on-rails ruby postgresql activerecord


    【解决方案1】:

    您需要仔细检查语法,但这样的事情应该在数据库中完成...

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

    请注意,DATE_TRUNC 是特定于 PG 的。​​

    【讨论】:

    • 哇!工作就像一个魅力 Philip :) 对于新的 Rails/Ruby 用户,您有什么语法建议可以将每个结果保存为一个名为 SalesAverage 的单独对象,并使用上面代码的结果分别填写日期和平均价格列?
    • 哈。好的,谢谢菲利普。你一直很善良。谢谢你的时间:)
    猜你喜欢
    • 2016-03-26
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多