J-uby, 6666 61 bytes
(:group_by.& &group_by+:next)|next|:values|:*&(:zip%(:size|:*)|:*&:sum)|:flatten
3 bytes longer than actual rubySurely there is a way to improve this. Yep, mostly because i'm not skilled enough at this yet. surely there+
is a way to improve thisvery useful.