我的Rails应用程序带有PostgreSQL DB Sales Table,如下所示:
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年的时间,因此循环每个小组并执行平均值的能力至关重要。
有没有人对如何写这个有任何建议?
答案 0 :(得分:2)
你需要仔细检查语法,但是这样的事情应该在数据库中完成...
Sales.average(:price, :group => "DATE_TRUNC('day', date)")
请注意,DATE_TRUNC是PG特定的。