Използвайте заявка за избор
Account.
joins(schedules: :impressions).
select("accounts.name as account_name,
schedules.date as schedule_date,
schedules.summary as schedule_summary,
count(impressions.id) as schedule_impression_count" ).
group("accounts.name,schedules.date,schedules.summary")
Ако го направите в една заявка, тогава обектите ще отговорят на псевдонима на колоната като schedule_date
и schedule_impression_count
Ако трябва да използвате тези обекти за други данни в същия изглед, тогава Account.eager_load(schedules: :impressions)
също трябва да работи и също така ще изпълни една заявка.