我有一张桌子:
id | municipio_id | ano | populacao
1 | 0 | 2010 | 5000
2 | 0 | 2011 | 5000
我创建了一个查询:
SELECT
case when ano = 2010 then populacao end a2010,
case when ano = 2011 then populacao end a2011
FROM populacao
where municipio_id = 0
结果是:
a2010 | a2011
5000 | null
null | 5000
我需要如下:
a2010 | a2011
5000 | 5000
有什么帮助吗?
答案 0 :(得分:1)
您想要聚合:
SELECT SUM(case when ano = 2010 then populacao end) as a2010,
SUM(case when ano = 2011 then populacao end) as a2011
FROM populacao
WHERE municipio_id = 0;
如果您希望所有市政当局都使用它,请使用 GROUP BY
:
SELECT municipio_id,
SUM(case when ano = 2010 then populacao end) as a2010,
SUM(case when ano = 2011 then populacao end) as a2011
FROM populacao
GROUP BY municipio_id;