2015-12-14 3 views
0

Мне нужно получить количество записей, созданных за определенный период времени. То, что я пытаюсь использовать прямо сейчас выглядит вроде как это:записи группировки со всеми возможными датами

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

Что я получаю хэш с датами как ключи и номера в качестве значений. НО, когда значение равно 0 для определенного дня, оно не включено в хеш. как я могу включить эти даты? Я имею в виду MySQL, а не язык Ruby, я хочу, чтобы он был как можно быстрее.

ответ

0

AR или MySQL не могут создать группу, если в заданном диапазоне нет записей в БД.

Я had a similar issue, и я только был в состоянии решить с Рубином ..

User 
    .where('created_at between ? and ?', start, finish) 
    .group("date(created_at)") 
    .flat_map{ |a,b| [a => b.count] } 
    .inject(:merge) 
Смежные вопросы