student表
-- ----------------------------
id name sex school
-- ----------------------------
('13', '张三', '男', '华南理工大学');
('14', '刘清', '女', '广东工业大学');
('15', '王八', '男', '中山大学');
('16', 'aaaa', '女', '华南理工大学');
('17', 'bbb', '男', '中山大学');
('18', 'ccc', '男', '广东工业大学');
('19', 'dd', '女', '中山大学');
('20', 'eee', '女', '华南理工大学');mysql查询语句如何实现按性别分组统计每个学校的人数,显示如下:
学校 人数
---------------
男 学校1
学校2
学校3
女 学校1
学校2
学校3请高手指点下!谢谢 急。。
-- ----------------------------
id name sex school
-- ----------------------------
('13', '张三', '男', '华南理工大学');
('14', '刘清', '女', '广东工业大学');
('15', '王八', '男', '中山大学');
('16', 'aaaa', '女', '华南理工大学');
('17', 'bbb', '男', '中山大学');
('18', 'ccc', '男', '广东工业大学');
('19', 'dd', '女', '中山大学');
('20', 'eee', '女', '华南理工大学');mysql查询语句如何实现按性别分组统计每个学校的人数,显示如下:
学校 人数
---------------
男 学校1
学校2
学校3
女 学校1
学校2
学校3请高手指点下!谢谢 急。。
select sex,school,count(*)
from student
group by sex,school
go
create table tb(id int,name varchar(10), sex varchar(10),school varchar(20))
-- ----------------------------
insert tb values('13', '张三', '男', '华南理工大学');
insert tb values('14', '刘清', '女', '广东工业大学');
insert tb values('15', '王八', '男', '中山大学');
insert tb values('16', 'aaaa', '女', '华南理工大学');
insert tb values('17', 'bbb', '男', '中山大学');
insert tb values('18', 'ccc', '男', '广东工业大学');
insert tb values('19', 'dd', '女', '中山大学');
insert tb values('20', 'eee', '女', '华南理工大学');
goselect sex 性别,school 学校,count(*) 人数
from tb
group by sex,school
order by sex
/*
性别 学校 人数
---------- -------------------- -----------
男 广东工业大学 1
男 华南理工大学 1
男 中山大学 2
女 广东工业大学 1
女 华南理工大学 2
女 中山大学 1(6 行受影响)
*/
---------------
男 学校1
学校2
学校3
女 学校1
学校2
学校3 好像人数有差错啊?
用SQL查询4楼做的是对的。
from tb
group by sex,school
order by sexorselect school as 学校,sum(if(sex='男',1,0)) as 男人数,
sum(if(sex='女',1,0)) as 女人数
from tb
group by school