SELECT
COUNT(*) AS 'sum0',
IFNULL(SUM(CASE WHEN type = 100 THEN 1 ELSE 0 END),0) AS 'sum1',
IFNULL(SUM(CASE WHEN type = 200 THEN 1 ELSE 0 END),0) AS 'sum2',
IFNULL(SUM(CASE WHEN type = 300 THEN 1 ELSE 0 END),0) AS 'sum3',
IFNULL(SUM(CASE WHEN type = 400 THEN 1 ELSE 0 END),0) AS 'sum4',
IFNULL(SUM(CASE WHEN type = 500 THEN 1 ELSE 0 END),0) AS 'sum5'
FROM type
以上句子用于统计当type分别为 100,200,300,400,500时候的总数。
用到的具体函数解析
1 IFNULL解析
在mysql中IFNULL() 函数用于判断第一个表达式是否为 NULL,如果第一个值不为NULL就执行第一个值。第一个值为 NULL 则返回第二个参数的值
上面的例子就是当sum type=100是空值时,sum1=0
2 case when then else end 用法
此方法类似于我们编程语言中的 if.. else..用法
简单的函数形式
case 字段 when 值 then 结果 else 其他情况 end;
表达式的形式
case when 字段=值(这里写表达式,例如 score=80) then 结果 else 其他情况 end;