1

我有状态数据库,其中有残障人士的数据?州又拥有许多城市

有腿问题,手问题,盲人等类型的人。

我只有一种状态

people_info(城市名称,类型)

我需要将状态数据显示为

州名 |总人数 | 腿部问题计数| 手题数|盲数

同样的方法

城市A |总人数| 腿部问题计数| 手题数|盲数

B市|总人数| 腿部问题计数| 手题数|盲数

如何为州和城市编写单个查询以打印数据

4

1 回答 1

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
于 2013-01-29T12:50:27.920 回答