1
說我們有一個查詢,顯示國家的人口組作爲第一列,該國的總人口作爲第二列。有沒有辦法對具有「group by」子句的查詢進行分區?
要做到這一點,我有以下查詢:
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
這樣做的問題是,
- 「by子句分區」不是在「分組依據」查詢允許
- 「where子句」不是「分區的」條款
允許,我希望你得到的點。請原諒我的語法和我標題的方式(不知道更好的描述)。
做這件事的工作與AVG()函數呢? – supertonsky 2012-07-19 09:42:34
它的工作原理,謝謝。 – supertonsky 2012-07-19 09:46:33
avg()也適用,每個非空值都被考慮在內 – GWu 2012-07-19 10:39:30