2013-12-08 3 views
2

я следующее:ActiveRecord группа по многосвязной области и рассчитывать

Question.group('date(created_at), type').count 

Это возвращает:

# => {"5"=>4, "2"=>3, "1"=>4, "4"=>1, "3"=>1} 

Вместо:

# => {["2013-12-02", "5"]=>3, ["2013-12-02", "2"]=>2, ["2013-12-02", "1"]=>2}... 

Что я делаю неправильно?

+0

Разное, здесь это не сумма. – Danpe

+0

Не имеет значения, 'count' vs' sum' - это просто нерелевантная деталь, основная проблема заключается в том, как AR имеет дело с строковыми условиями GROUP BY и агрегатными функциями. –

ответ

0

Вы хотите группировать дату и тип вместе, используя квадратные скобки. Попробуйте это:

Question.group(["date(created_at)", :type]).count

Просто разделив параметры, передаваемые group будет работать, но я думаю, что это делает его более ясным:

Question.group("date(created_at)", :type).count

И даст вам результаты как:

["<date>", <type>] => count

0

Необходимо пройти в параметрах до group отдельно:

Question.group('date(created_at)', 'type').count 
Смежные вопросы