计算Rails中记录之间的平均天数

时间:2012-06-13 14:08:07

标签: ruby-on-rails ruby ruby-on-rails-3

鉴于我有一个带有标准Rails时间戳列的Foo模型,那么计算创建记录之间平均天数的最有效方法是什么?

2 个答案:

答案 0 :(得分:5)

模型的maximumminimum类方法将使用SQL聚合函数min()max()来有效地查找极值。

span_secs = Foo.maximum(:created_at) - Foo.minimum(:created_at)
avg_secs = span_secs / (Foo.count - 1)
avg_days = avg_secs / (24 * 60 * 60)

答案 1 :(得分:0)

如果您使用MySQL

secs = Foo.where("created_at IS NOT NULL").average("UNIX_TIMESTAMP(created_at)").to_i
DateTime.strptime secs.to_s, "%s"