Views table aggregation with counts per value of a field
Views_merge_rows module will save your day! Assuming that the States field is a list field.

1) In your aggregation enabled views with table display add a User:Name (Group results together), a States field (COUNT, Excluded from display) and again a States field (Group results together, Rewrite Results > Rewrite the output of this field: [field_states]  ([field_states_1])).

So you will get a list of users with states but with one row per node. Here is a screenshot:



2) Then, enable the views_merge_rows module. In you Merge rows settings do this:



So you get what you want!