I like both answers (SQL, AWK) because they are standard languages and implement the algorithm in a idiomatic way. I was about to downvote the Q even further though, because it seems to insist on a specific solution.
But that exactly is fgdark's problem: you rely too much on utilities and do not understand the algorithm(s) involved.
How could I pipe together cut, grep, numaverage in this manor (other
commands may help such as cat, uniq, wc)?
You can "easily" find a pipe solution by starting with temporary files, and when the chain works, you pipe it together. The result will be unsatisfactory. I don't have numaverage, for starters. Performance also.
Here, some "real" programming language is needed, like SQL or AWK. Or perl or python or C. Or bash - but bash as a script language with associative arrays and arithmetic operators, not bash "only" as a shell.
You don't need a average() function as with the SQL solution, you can just count, add and divide the data you have read in to your arrays.
So if you want to do more data reporting, you should pick a language. SQL is a bit special, being strong on data mining. The others mentioned (awk, perl, python, C, even bash) are strong in data processing (manipulating variables/arrays/structures). But there is large overlap.
I worked with SQL for some years; this is how I would save the query and it's call:
SQL='select a as Name, count(*) as Count, avg(b) as Average'
SQL+=' from file'
SQL+=' group by a'
csvsql -tSH --query $SQL file | csvformat -T
'Tis not a critique, but an attempt to illustrate how the Structured Query Language is - structured. It is a textbook demonstration of a
group by clause with aggregate functions
Bash provides the syntax
+= to easily do that.