表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;
命令:
结果:
原数据:
数据不对吧,classid为2的话应该只有2个男生o(╯□╰)o
我的答案建立在楼主的认知上,当然我也是:
先查出男生的情况,如t1:
|class_id|male|
|:---:|:---:|
|1|2|
|2|1|
然后查出女生的情况,如t2:
最后把两张表链起来:
select t1.class_id,male,female from t1,t2 where t1.class_id = t2.class_id
没有试,但大概意思是对的吧