Я хочу сгруппировать результаты из одной таблицы по двум столбцам: created_at
p_id
, мне нужно сгруппировать их по p_id
, потому что мне нужны уникальные значения, и я пытался использовать distinct
для этого, но в моем случае это не сработало так, как я хотел .
Report.group("date(created_at)").group(:p_id).select("date(created_at) as created_at, count(*) as count, p_id")
r = _
r.count will generate this:
{[Mon, 18 Nov 2013, 11]=>1, [Mon, 18 Nov 2013, 8]=>1, [Mon, 18 Nov 2013, 13]=>1, [Mon, 18 Nov 2013, 12]=>3, [Mon, 18 Nov 2013, 10]=>1, [Mon, 18 Nov 2013, 7]=>1, [Mon, 18 Nov 2013, 3]=>1, [Mon, 18 Nov 2013, 2]=>1, [Mon, 18 Nov 2013, 9]=>1, [Mon, 18 Nov 2013, 14]=>1, [Mon, 18 Nov 2013, 6]=>1}
Но мне нужен результат в другом формате, что я должен добавить, чтобы получить что-то вроде этого: {Mon, 18 Nov 2013=>11}
где 11
- это общее количество записей, сгенерированных приведенным выше оператором sql.
Спасибо.
p_id
, а затем хотите разгруппировать по тому же значению? Почему бы вам просто не удалить вызовgroup(:p_id)
? - person marzapower   schedule 19.11.2013p_id
s`. - person user2983193   schedule 19.11.2013