php - 根据类别和组计算男性和女性
问题描述
Stackoverflow 的成员,我已经使用 Mysql php 编程九个月了,但是我在开发一个小型员工平台时遇到了困难。我知道这可能是一个重复的问题,但我一直在寻找如何在没有任何希望的情况下遇到这个问题
这里是我的 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
上面的脚本给出了一个总的结果,并且没有显示每个中心。
解决方案
工作了几个小时后,我设法编写了以下查询并且运行良好。
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_center
欢迎对我的方法进行任何改进。
推荐阅读
- ios - 在较旧的 iOS 设备上安装 IPA 时出错:无法为 64 位 Mach-O 输入文件找到匹配的拱门
- github - 文件 ios/Flutter/Flutter.framework/Flutter 为 351.71 MB;这超出了 GitHub 的文件大小限制 100.00 MB
- hyperledger-fabric - Hyperledger Fabric 无法创建只有一个组织的通道
- python - 如何使 Django Forms JSON 可序列化
- sql-server - 在 T-SQL 中提取两个破折号之间的数字
- assembly - 如何通过地址有效地测试内存的可缓存性?
- python - 无论如何在没有 GPU 和 TensorFlow 的情况下运行 GPT2
- html - 使用 Jekyll 如何将 index.md 中列表的每个元素转换为自定义生成的html文件中的标签?
- c++ - 将逗号运算符与条件运算符一起使用
- android - 如何在 Web api 响应中添加动态复选框?