将记录与所有可能的日期分组

时间:2015-12-14 13:54:50

标签: mysql ruby-on-rails

我需要获取在特定时间段内创建的记录数。我现在想要使用的东西看起来有点像这样:

User.where('created_at between ? and ?', start, finish).group("date(created_at)").count

我得到的是哈希,其中日期为键,数字为值。但是当特定日期的值为0时,它不包含在散列中。我怎么能包括这些日期呢?我的意思是MySQL,而不是Ruby语言,我希望它尽可能快。

1 个答案:

答案 0 :(得分:0)

如果在给定范围内的DB中没有记录,则AR或MySQL无法创建组。

had a similar issue我只能用Ruby解决它..

User
  .where('created_at between ? and ?', start, finish)
  .group("date(created_at)")
  .flat_map{ |a,b| [a => b.count] }
  .inject(:merge)