日期:2014-05-16  浏览次数:20897 次

新手请教一条MYSQL命令
数据表为 tbl
有3个列,列名分别为A B C,
A为CHAR
B为CHAR
C为INT 
A的值就只有 m 和 f ,分别代表男和女
B的值是班级,比如3-1 (三年级一班)
C的值是班级人数

数据库举个例子是这样的

A B C
m 3-1 34 
f 3-1 29
m 3-2 33
f 3-2 30 
。。。。
3年级1班,男生34人,女生29人
3年级2班,男生33人,女生30人

现在我想统计下所有班级当中,男生的人数,我该如何写命令查询呀?本人对命令不熟,谢谢。


------解决方案--------------------
SQL code
select sum(c) from tbl where A='m';

------解决方案--------------------
select * from tb1 where c in(select c from tb1 group by c having count(1)>1);
------解决方案--------------------
探讨

select * from tb1 where c in(select c from tb1 group by c having count(1)>1);

------解决方案--------------------
SQL code
create table tb1
(
  a char(1),
  b char(3),
  c int
);
insert tb1 select
'm', '3-1', 34 union select
'f', '3-1', 29 union select
'm', '3-2', 33 union select
'f', '3-2', 30 union select
'm', '3-3', 33;


create table tbss
(
  b char(3),
  count_boy int
);

insert tbss
select b,sum(c) as count_boy
from tb1
where a='m'
group by b;

select s.b
from tbss s join(
SELECT count_boy
from tbss
group by count_boy
having count(*)>1) z on s.count_boy=z.count_boy
/*
3-2
3-3
*/