计算每天的记录数
答
使用to_date
这将摆脱所有的时间信息,有效地让你只用几天。
User.where('created_at >= ?', 1.week.ago).group_by { |u| u.created_at.to_date }.map { |_,v| [_, v.length]}.to_h
,或者,如果你不计较时间部分,你可以这样做:
User.where('created_at >= ?', 1.week.ago).group(:created_at).count
这将让你与created_at
和count
哈希值。
有没有一种方法可以得到计数? –
'{2016-08-19 13:59:39 UTC => 1,2016-08-19 07:30:24 UTC => 1,2016-08-22 12:37:51 UTC => 1,2016- 08-19 07:23:36 UTC => 1,2016-08-24 08:04:54 UTC => 1}'看起来好像需要时间基础。任何方式,我可以得到它只是基于日期。我正在使用第二个查询 –
对于大量记录来说,这当然是最快的解决方案,因为分组是在SQL中完成的,而不是取出所有记录,然后在ruby中进行分组。 –