2015-12-14 44 views
0

我需要獲取在特定時間段內創建的記錄數。我現在試圖使用的東西看起來有點像這樣:將所有可能日期的記錄分組

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

我得到的是日期作爲鍵和數字作爲值的散列。但是,如果特定日期的值爲0,則不包含在散列中。我怎樣才能包括這些日期?我的意思是MySQL,而不是Ruby語言,我希望它儘可能快。

回答

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) 
相關問題