SELECT classname,COUNT(*) AS nums,
#sum(gender='男') as male, #<1>
SUM(CASE WHEN gender='男' THEN 1 END) AS male, #<2>
SUM(IF(gender='女',1,0)) AS female #<3>
FROM test1
GROUP BY classname;
#<1>,#<2>,#<3>三种方式效果一致,查询结果如下
MySQL if语句的三种用法
1.IF表达式
IF(expr1,expr2,expr3);
如果expr1为TRUE,则IF()返回值为expr2,否则返回值为expr3
2.IFNULL语句
IFNULL(expr1,expr2)
假如expr1不为null,则返回expr1,否则返回expr2
3.IF…ELSE…语句
IF condition1 THEN
statement1
ELSEIF condition2 THENstatement2
ELSE
statement3
END IF;
condition是一个条件表达式,可以由条件运算符组成,也可以使用AND、OR、NOT对多个表达式进行组合
Case When语句(类似java的switch)以下两图等同
CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' END
CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' END
CASE SCORE WHEN 'C' THEN '中' ELSE '不及格' END
CASE WHEN SCORE = 'A' THEN '优'
WHEN SCORE = 'B' THEN '良'
WHEN SCORE = 'C' THEN '中' ELSE '不及格' END