Sql 获取列中值的百分比
我有一张叫做Director的桌子,看起来像Sql 获取列中值的百分比,sql,Sql,我有一张叫做Director的桌子,看起来像 DirectorID FirstName FamilyName FullName DoB Gender 1 Steven Spielberg Steven Spielberg 1946-12-18 Male 2 Joel Coen Joel Coen 1954-11-29 Male
DirectorID FirstName FamilyName FullName DoB Gender
1 Steven Spielberg Steven Spielberg 1946-12-18 Male
2 Joel Coen Joel Coen 1954-11-29 Male
3 Ethan Coen Ethan Coen 1957-09-21 Male
4 George Lucas George Lucas 1944-05-14 Male
5 Ang Lee Ang Lee 1954-10-23 Male
6 Martin Scorsese Martin Scorsese 1942-11-17 Male
7 Mimi Leder Mimi Leder 1952-01-26 Female
我正试图计算出女性导演与男性导演的比例
我可以使用以下公式计算出男性和女性导演的人数:
SELECT count(*) as myMale from Director
where Gender = 'Male'
SELECT count(*) as myFemale from Director
where Gender = 'Female')
但我很难将它们结合起来,以获得一定比例的女性导演
我希望得到14.3%的结果,其计算方法如下:
Total Female Directors / (Total Male Directors + Total Female Directors)
或
如何使用SQL实现这一点?一个简单的方法使用聚合。假设董事为男性或女性(二进制),那么简单的条件聚合就足够了:
select avg(case when gender = 'Female' then 1.0 else 0 end) as ratio_female
from directors;
如果您只想将此限制为男性
和女性
(假设有其他选项),则应将中的性别(“女性”、“男性”)包括在内
select avg(case when gender = 'Female' then 1.0 else 0 end) as ratio_female
from directors;