假设我们有一个查询,按国家/地区显示人口组,将国家作为第一列,该国家的总人口作为第二列。
为此,我有以下查询:
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
问题在于
- “分组依据”查询中不允许“分区依据子句”
- “partition by”子句中不允许使用“where 子句”
我希望你明白这一点。请原谅我的语法和我给它命名的方式(无法知道更好的描述)。