假设我们有一个查询显示按国家/地区划分的人口组,其中该国家/地区为第一列,该国家/地区的总人口为第二列。
为实现这一目标,我有以下问题:
select
i.country,
count(1) population
from
individual i
group by
i.country
现在我想在该查询中再引入两列,以显示每个国家/地区的男性和女性人口。
我想要达到的目标可能与此相似:
select
i.country,
count(1) population total_population,
count(1) over (partition by 1 where i.gender='male') male_population,
count(1) over (partition by 1 where i.gender='female') female_population,
from
individual i
group by
i.country
问题在于
我希望你明白这一点。请原谅我的语法和我的标题(不知道更好的描述)。
答案 0 :(得分:3)
您不需要分析功能:
select
i.country
,count(1) population
,count(case when gender = 'male' then 1 end) male
,count(case when gender = 'female' then 1 end) female
from
individual i
group by
i.country
;