任务:统计每个班的女生人数并显示占比情况
1.先建一张测试表
CREATE TABLE `student` (
`id` int(10) NOT NULL,
`name` varchar(20) DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`class` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2.随便加几条数据
3.写sql
select
class `班级`,
count(*) `总人数`,
sum(case when sex = 'f' then 1 else 0 end) `女生`,
concat(left(sum(case when sex = 'f' then 1 else 0 end) / count(*) * 100, 5),'%') `女生占比`
from student
group by class;
4.查询结果
5.用到的几个函数
concat(str1, str2):连接连个字符串
left(字段,截取长度):截取函数
sum(case when sex = 'f' then 1 else 0 end):性别为女就加1否则加0
count(*):统计总数