SQL-Server: What is a good way to aggregate on different columns within the same query?
You could also use window functions:

Select Category,
    Count(Category) As [Count],
    Count(Category)*100.0 / Sum(Count(Category)) Over () As Perc
  From TableA
  Group By Category;