我正在研究如下数据:
表中的
性别(M,F)具有相同的globalid,但是,我需要根据性别(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;
答案 0 :(得分:0)
我想你想要更像这样的东西:
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 . . )
更有效。