我有状态数据库,其中我有身体受到挑战的人的数据? 国家又有许多城市
有些人基于腿部问题,手部问题,盲目等等。
我只有一个州
people_info(cityname,type)
我需要将状态数据显示为
州名|总人数|腿部问题计数|手问题计数|盲目计数
同样的方式
城市A |总人数|腿部问题计数|手问题计数|盲目计数
城市B |总人数|腿部问题计数|手问题计数|盲目计数
如何为州和城市编写单一查询以打印数据
答案 0 :(得分:1)
由于您没有提到您正在使用的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