2013-12-23 5 views
0

Например, у меня есть таблица вроде этого:Mysql Group по годам и граф поле

| id | name | register_date | gender | 

|1  |John |2011-02-02  |man  | 
|2  |Jane |2011-02-02  |woman  | 
|3  |Jihn |2012-04-04  |man  | 
|4  |Jeni |2012-02-02  |woman  | 
|5  |Joni |2012-02-02  |woman  | 

Как запрос, чтобы создать этот результат из этой таблицы выше?

| RegisterYear | man | woman | 

|2011   | 1 | 1 | 
|2012   | 1 | 2 | 

ответ

3

Группа по году и просуммировать каждый пол

select year(register_date) as registeryear, 
     sum(gender = 'man') as man, 
     sum(gender = 'woman') as woman  
from your_table 
group by registeryear 
+0

Hi Juergen, спасибо за ваш ответ Позвольте мне попробовать сейчас – user3128703

+0

@hanky: Спасибо, я пропустил эту запятую –

+0

Большое спасибо Юрген! thats working и спасибо за исправление Hanky: D – user3128703

0

Здесь вы идете:

SELECT YEAR(register_date) as RegisterYear, 
     SUM(gender = 'man') as man, 
     SUM(gender = 'woman') as woman 
from register 
group by RegisterYear; 

SQLFiddle Demo

Выход:

REGISTERYEAR MAN  WOMAN 
=================================== 
2011   1  1 
2012   1  2 
Смежные вопросы