国を 1 列目に、その国の総人口を 2 列目に国別に人口グループを表示するクエリがあるとします。
これを達成するために、次のクエリがあります。
select
i.country,
count(1) population
from
individual i
group by
i.country
ここで、そのクエリにさらに 2 つの列を導入して、各国の男性と女性の人口を表示したいと思います。
私が達成したいことは、次のようになります。
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 句」は「group by」クエリでは使用できません
- 「partition by」句では「where句」は使用できません
要点を理解していただければ幸いです。私の文法と私がこれにタイトルを付けた方法を許してください(これ以上の説明を知ることができませんでした)。