SELECT name,count(*)
from (
SELECT playerID,sum(HR) AS careerHR
FROM batting
GROUP BY playerID
) AS b INNER JOIN (
SELECT 'weak' AS name, 0 AS low, 199 AS high
UNION
SELECT 'medium' AS name, 200 AS low, 399 AS high
UNION
SELECT 'strong' AS name, 400 AS low, 800 AS high
) AS g
ON b.careerHR between g.low AND g.high
group by name