我正在研究如下数据:

从表中看,性别(M,F)具有相同的全局值,但是,我需要根据性别(来自M和F的总和)对不同的globalid值列进行求和。我尝试过这段代码,但查询只是返回了相同的数据。
select distinct (globalid) globalid, fcname, featureidentifier,
gender, source, wardcode,sum (distinct value)
from public.kano_pp
source= 'Worldpop / ORNL Adjusted'
group by globalid, fcname, featureidentifier,gender, source, wardcode, value
order by globalid; 发布于 2018-03-13 17:52:25
我想你想要更像这样的东西:
select globalid,
sum(case when gender = 'F' then value else 0 end) as female_value,
sum(case when gender = 'M' then value else 0 end) as male_value
from public.kano_pp
where source = 'Worldpop / ORNL Adjusted'
group by globalid
order by globalid; 最近版本的Postgres支持filter子句,它比sum(case . . )更有效。
https://stackoverflow.com/questions/49262467
复制相似问题