A version of the following query gives me just what I'm looking for (although a much larger chart):
index="foo" search_text | chart count by result version
returns something like
| A |1823| 283| 12| 941|
| B | 923| 23| 2| 193|
| C | 810| 74| 1| 324|
| D |1192| 2| 6| 90|
The one thing I still need to do is to filter out entire columns based on an arbitrary value (say, the count of A for a particular version is less than 100). For example, v1.3 has only 12 instances of result 'A', so this chart should only show columns for v1.1, v1.2, and v1.4.
This worked perfectly, thanks! I'd previously tried the subsearch approach, but since I'm actually searching through a few hundred million records, the subsearch would always time out; the eventstats approach was just the trick.