根据类别和群体统计男性和女性

时间:2018-07-26 09:06:07

标签: php mysql

Stackoverflow的成员,我已经与Mysql php编程一起工作了9个月,但是在开发一个小型员工平台时却遇到了麻烦。我知道这可能是一个重复的问题,但是我一直在寻找如何解决这个问题的方法希望
这是我与员工的Mysql表

No  full_name       gender          proffesional      Center
1  Ali P Ali            M           BACHELOR            JUIO
2. PETER PETERS         M           DIPLOMA             PETERS
3. ASHA AL ASHA         F           BACHELOR            ST.JOHN
4. JAMAL ALI JAMAL      M           DIPLOMA             ST.JOHN
5.JULIO J. JULIO        F           DIPLOMA             ST.JOHN
6.ROSE A LYMO           F           BACHELOR            PETERS

我想查询该表以产生以下结果。我怎么遇到这个???

 center Name     |BACHELOR  | DIPLOMA   | Total
                 |M  | F    | M   | F    | 
   JUIO          | 1 | 0    | 0   |0     |  1
   PETERS        |   | 1    | 1   |0     |  2
   ST.JOHN       |   | 1    | 1   |1     |  3
  TOTAL          | 1 | 2    | 2   |1     |  6

这是我到目前为止尝试过的

select employee.work_center,    count(case when gender='M' then 1 end)as male,  count(case when gender='F' then 1 end) as female   from employee WHERE proffesional="DIPLOMA" group by work_center

这将产生仅文凭课程的结果,如下所示:

 work_center male female    
    QUET        0   1
    ST.JOHN     2   0
    ST.PETERS   1   1

上面的脚本给出了总计的结果,但没有显示每个中心。

1 个答案:

答案 0 :(得分:0)

工作了很长时间后,我已经找到了解决问题的方法。感谢您的合作,并鼓励我自己找到解决方法/ 这是一个解决方案

select work_center,
count(case when proffesional="DIPLOMA" AND gender='M' then 1 end)as DP_male,
count(case when proffesional="DIPLOMA" AND gender='F' then 1 end) as DP_female,
count(case when proffesional="BACHELOR" AND gender='M' then 1 end)as BAC_male,
count(case when proffesional="BACHELOR" AND gender='F' then 1 end) as BAC_female 
from employee group by work_centers

欢迎改进我的方法。