使用しているRDBMSについて言及していないので、これは多くの(すべてではない)データベースサーバーでいくらか機能します。
SELECT cityName,
COUNT(*) totalPeople,
SUM(CASE WHEN type = 'legProb' THEN 1 ELSE 0 END) AS LegProbCount,
SUM(CASE WHEN type = 'handProb' THEN 1 ELSE 0 END) AS HandProbCount,
SUM(CASE WHEN type = 'blindProb' THEN 1 ELSE 0 END) AS blindCount
FROM people_info
GROUP BY cityName
ではMySQL、これを直接使用できます。
SELECT cityName,
COUNT(*) totalPeople,
SUM(type = 'legProb') AS LegProbCount,
SUM(type = 'handProb') AS HandProbCount,
SUM(type = 'blindProb') AS blindCount
FROM people_info
GROUP BY cityName