mysql - [SQL]如何统计每班男女生人数?
大家讲道理
大家讲道理 2017-04-17 12:04:51
[MySQL讨论组]

表User有字段:name,sex,classId,比如有如下记录:
a, 男, 1
b, 男, 1
c, 女, 1
d, 女, 1
e, 男, 2
f, 男, 2

要求查出如下这样的记录(每个班男、女各有几人):
classId 男 女
1 2 2
2 1 1

请问要怎样写?
如果只是查出每个班的男生人数就会:
SELECT class, COUNT(*) AS '男' FROM t_uu WHERE sex='男' GROUP BY class;

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
ringa_lee

命令:

SELECT class_id, SUM(sex = '男') AS male, SUM(sex = '女') AS female FROM student
GROUP BY class_id

结果:

原数据:

select * from student;

PHP中文网

数据不对吧,classid为2的话应该只有2个男生o(╯□╰)o

黄舟

我的答案建立在楼主的认知上,当然我也是:
先查出男生的情况,如t1:

|class_id|male|
|:---:|:---:|
|1|2|
|2|1|
然后查出女生的情况,如t2:

class_id female
1 2
2 1

最后把两张表链起来:select t1.class_id,male,female from t1,t2 where t1.class_id = t2.class_id

没有试,但大概意思是对的吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号