[英]SQl Query Results by Year
I have a Client table with the following columns. 我有一个包含以下列的Client表。
Admit_date Gender Homeless Unemployed Deleted
4/2/2012 Male Yes Yes 0
1/1/2011 Female Yes Yes 0
12/2/2011 Male No No 0
5/23/2009 Female Yes Yes 0
4/3/2009 Male No No 0
7/4/2010 Male Yes Yes 0
9/2/2010 Male Yes Yes 0
I need to show the percent of each group in each year. 我需要显示每年每组的百分比。 I think this will require a pivot table: 我认为这需要一个数据透视表:
2009 2010 2011 2012
Admitted 2 2 2 1
Male 50% 100% 50% 100%
Female 50% 0 50% 0%
Homeless 50% 100% 50% 100%
Unemployed 50% 100% 50% 100%
This query gives me the count for each year: 这个查询给了我每年的计数:
select year(admit_date_c) as Year_of_Admit,count((admit_date_c)) as Admitted
from clients where deleted = '0'
group by year(admit_date_c)
Year_of_Admit Admitted
2009 2
2010 2
2011 2
2012 1
I tried numerous query iterations using Case Count but can't figure out how to get a count or percentage of Gender, Homeless and Unemployement. 我尝试使用Case Count进行了大量的查询迭代,但无法弄清楚如何获得性别,无家可归者和失业者的计数或百分比。 Once I have that, I think I can pivot the table to get the display I need. 有了这个,我想我可以转动表格以获得我需要的显示。
I think this should do it: 我认为应该这样做:
select year(admit_date) as year_of_admit,
sum(case when gender='Male' then 1 else 0 end)*100/count(*) as Male,
sum(case when gender='Female' then 1 else 0 end)*100/count(*) as Female,
sum(case when homeless='Yes' then 1 else 0 end)*100/count(*) as Homeless
from client
group by year(admit_date)
I don't know if you can have values other than Male/Female or Yes/No, like "unknown". 我不知道你是否可以拥有除男性/女性以外的其他值或是/否,如“未知”。 In that case you'd have to decide whether, say, 10 males, 5 females, and 5 unknowns means 50% male, ie 50% are known to be male, or 66% males, ie 66% of those whose gender is known are male. 在这种情况下,你必须决定,例如,10个男性,5个女性和5个未知数是否意味着50%的男性,即50%被认为是男性,或66%是男性,即66%的性别已知的人是男性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.