Transaction.group(:category_id).sum(:amount)
Это вернет хеш, подобный этому:
{CATEGORY_ID => SUM_OF_TRANSACTIONS, ....}
или
{1 => 100.0, 2 => 350.0, etc.}
Чтобы получить настоящие Category
имена:
Transaction.includes(:category).group("categories.name").sum(:amount)
# => {"Category1" => 100.0, ...}