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
上面的脚本给出了总计的结果,但没有显示每个中心。
答案 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
欢迎改进我的方法。