Имея массив:Рубин на Rails - получить максимальную и сумму группы по несколько ключей в массиве одновременно
[ { 'a' => 1, 'b' => 1, 'c' => 1, 'd' => 1, 'e' => 2},
{ 'a' => 1, 'b' => 1, 'c' => 2, 'd' => 1, 'e' => 2},
{ 'a' => 1, 'b' => 1, 'c' => 3, 'd' => 1, 'e' => 2},
{ 'a' => 1, 'b' => 2, 'c' => 4, 'd' => 2, 'e' => 2 },
{ 'a' => 1, 'b' => 2, 'c' => 5, 'd' => 2, 'e' => 2 },
{ 'a' => 2, 'b' => 1, 'c' => 6, 'd' => 3, 'e' => 2 },
{ 'a' => 2, 'b' => 1, 'c' => 7, 'd' => 3, 'e' => 2 },
{ 'a' => 2, 'b' => 1, 'c' => 8, 'd' => 3, 'e' => 2 },
{ 'a' => 2, 'b' => 2, 'c' => 9, 'd' => 4, 'e' => 2 },
{ 'a' => 2, 'b' => 2, 'c' => 10, 'd' => 4, 'e' => 2 } ]
Я хочу, чтобы получить максимум от «с», сумма «D», сумма «е» сгруппированных по 'a' и 'b'.
Таким образом, результат должен быть:
[ { 'a' => 1, 'b' => 1, 'c' => 3, 'd' => 3, 'e' => 6},
{ 'a' => 1, 'b' => 2, 'c' => 5, 'd' => 4, 'e' => 4},
{ 'a' => 2, 'b' => 1, 'c' => 8, 'd' => 9, 'e' => 6},
{ 'a' => 2, 'b' => 2, 'c' => 10, 'd' => 8, 'e' => 4} ]
До сих пор я следую How to find max value grouped by multiple keys in array of hashes?, используя этот код, чтобы получить максимум из каждой группы
a.group_by { |h| h.values_at("a", "b") }.map { |_, v| v.max_by { |h| h["c"] } }
Пожалуйста, руководство меня, получить сумму тоже. Большое спасибо.
P/s: с помощью Ruby, Rails 1.8.7 и 2.3.5
Если мой вопрос дублируется, может ли он дать мне тот же самый? Спасибо – Anh