2014-12-05 2 views
1

запрос:Создание пропорции из двух запросов в SQL

SELECT year, count(*) as total FROM table GROUP BY year 

дает мне список сумм в год, таких как:

year total 
2000 100 
2001 120 
2002 124 
2003 156 

Принимая во внимание запрос:

SELECT year, count(*) as male FROM table WHERE gender='Male' GROUP BY year 

дает мне список итогов только для мужчин в год, таких как:

year male 
2000 50 
2001 55 
2002 60 
2003 70 

Что я хочу это пропорции в год: то есть male/total дать в качестве выхода:

year prop 
2000 0.50 
2001 0.46 
2002 0.48 
2003 0.45 

Как это может быть сделано с один MySql запрос?

+0

Можете ли вы предоставить некоторые данные образцы таблиц и ожидаемые результаты? – Wanderer

ответ

2

Вы можете сделать с условной суммой что-то как

select 
year, 
count(*) as total, 
sum(gender='Male') as male_count, 
(sum(gender='Male')/count(*) ) as proportions 
from table 
GROUP BY year 

для выходного формата его

select 
year, 
(sum(gender='Male')/count(*) ) as prop 
from table 
GROUP BY year 
+1

Это работает отлично! Большое спасибо. – Geoff

Смежные вопросы