我有状态数据库,其中有残障人士的数据?州又拥有许多城市
有腿问题,手问题,盲人等类型的人。
我只有一种状态
people_info(城市名称,类型)
我需要将状态数据显示为
州名 |总人数 | 腿部问题计数| 手题数|盲数
同样的方法
城市A |总人数| 腿部问题计数| 手题数|盲数
B市|总人数| 腿部问题计数| 手题数|盲数
如何为州和城市编写单个查询以打印数据
由于您没有提到您正在使用的 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