统计每个部门下男生、女生的人数
表结构
create table t_user(
id int(11) not null auto_increment primary key,
name varchar(11),
sex char(2),
dept_no varchar(11)
)
基础数据
INSERT INTO `t_user`( `name`, `sex`, `dept_no`) VALUES ('小白', '男', '001');
INSERT INTO `t_user`(`name`, `sex`, `dept_no`) VALUES ( '小王', '女', '001');
INSERT INTO `t_user`(`name`, `sex`, `dept_no`) VALUES ('admin', '男', '001');
INSERT INTO `t_user`(`name`, `sex`, `dept_no`) VALUES ('小黑', '男', '002');
INSERT INTO `t_user`(`name`, `sex`, `dept_no`) VALUES ('小赵', '女', '003');
实现
select
dept_no,
sum(case when sex='男' then 1 else 0 end) '男生总数',
sum(case when sex='女' then 1 else 0 end) '女生总数'
from t_user
group by dept_no
结果
统计所有部门中全是男生、全是女生、即有男生又有女生个数
实现
select sum(case when con1>0 and con0=0 then 1 else 0 end) '全为男生',
sum(case when con1=0 and con0>0 then 1 else 0 end) '全为女生',
sum(case when con1>0 and con0>0 then 1 else 0 end) '既有男生和女生'
from (
select
dept_no,
sum(case when sex='男' then 1 else 0 end) con1,
sum(case when sex='女' then 1 else 0 end) con0
from t_user
group by dept_no
) item
结果
有问题可以在评论下方留言。。。既然来了,不妨点个关注,点个赞吧!!!