Přemýšleli jste o kalendářní tabulce ? Přestože je stránka velmi stará, stále velmi dobře popisuje použití takové tabulky:
Takže ve vašem případě byste vytvořili takovou tabulku a pak ji jednoduše spojili se svou Company
model.
Vede k dotazu jako:
CalendarDay.where(year: Date.current.year).joins(:companies).group('YEAR(companies.created_at)').count