select CustID,count(case gender when 'f' then 1 else 0) as f_count from Cust group by CustID
select CustID,sum(case gender when 'f' then 1 else 0) as f_count from Cust group by CustID
select CustID,sum(case gender when 'f' then 1 else 0 end) as f_count from Cust group by CustID
select a.ClassID,a.Min_Age,a.Max_Age,sum(case b.Age begin '' end '' and Gender ='f' then 1 else 0 end) as 男性人数,sum(case b.Age begin '' end '' and Gender ='m' then 1 else 0 end) as 女性人数 from class a,Cust b group by a.ClassID,a.Min_Age,a.Max_Age
select b.ClassID,count(Gender) '人数' from Cust a ,Class b where a.Gender='m' and a.Age between b.Min_Age and b.Max_Age group by b.ClassID 请提供测试数据,我还没测试的
全都用case呀?我不知道.我还以为要用特别复杂的多重查询呢.
不用 case select CustID,count(*) as f_count from Cust where gender='m' group by CustID
from Cust
group by CustID
from Cust
group by CustID
from Cust
group by CustID
group by a.ClassID,a.Min_Age,a.Max_Age
select CustID,count(*) as f_count
from Cust
where gender='m'
group by CustID
应该列出classID,count