按不同日期范围分组

时间:2014-05-07 11:02:52

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

我正在尝试找到最有效的方法来查询我的表并构建在现在和不同日期范围之间创建的用户数量的哈希值。此哈希应显示如下...

{"7 Days" => 8, "1 Month" => 15, "3 Months" => 45, "12 Months" => 108, "Total" => 333}

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式在数据库中创建视图:

select (select count from now till now-7 days) as 7days,
       (select count from now till now - 1month) as 1month, etc

然后在您的应用中查询该视图

答案 1 :(得分:0)

一种方法是创建一个范围.. 返回所有不到一个月的实例的范围示例如下:

scope :1month, -> { where("created_at < ?", 1.month.ago) }

然后你可以用计数链接它。

n = MyClass.1month.count