总结初始列mysql

总结初始列mysql,mysql,database,vb.net,Mysql,Database,Vb.net,我创建了这样一个查询 "select count(if(gender="male",1,null)) as malecount, count(if(gender="female",1,null)) as femalecount from biodata" 这是工作,我想这样总结一下: "select count(if(gender="male",1,null)) as malecount, count(if(gender="female",1,null)) as femalecou

我创建了这样一个查询

 "select count(if(gender="male",1,null)) as malecount,
  count(if(gender="female",1,null)) as femalecount from biodata"
这是工作,我想这样总结一下:

 "select count(if(gender="male",1,null)) as malecount,
  count(if(gender="female",1,null)) as femalecount, male+female as sumgender 
  from biodata"
当然,当我在if语句中设置许多条件时,该查询将有所帮助

请帮我解决这个案子…

select 
count(if(gender="male",1,null)) as malecount,
count(if(gender="female",1,null)) as femalecount, 
count(if(gender in ("female","male",1,0)) as sumgender 
from biodata
或者,如果您确定所有行的性别都是男性或女性,请使用简单的计数(1)

或者执行子查询

select
malecount, 
femalecount,
malecount + femalecount as sumgender
from (
select 
count(if(gender="male",1,null)) as malecount,
count(if(gender="female",1,null)) as femalecount
from biodata
) sub

但您不能在同一选择中使用聚合别名进行计算。

用这种方式编写以解决此问题

select malecount+femalecount as sumcount from  (select
count(if(gender="male",1,null)) as malecount,  
 count(if(gender="female",1,null)) as femalecount   from biodata) as
 query
select malecount+femalecount as sumcount from  (select
count(if(gender="male",1,null)) as malecount,  
 count(if(gender="female",1,null)) as femalecount   from biodata) as
 query