0
点赞
收藏
分享

微信扫一扫

统计每个部门下男、女人数;统计所有部门中全是男生、全是女生、即有男生又有女生个数

小时候是个乖乖 2022-03-24 阅读 12

统计每个部门下男生、女生的人数

表结构

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

结果

在这里插入图片描述
有问题可以在评论下方留言。。。既然来了,不妨点个关注,点个赞吧!!!

举报

相关推荐

0 条评论