您的位置:首页 > 其它

case when , Sum和Count的区别

2018-02-09 19:40 711 查看

case when 的语法结构:

CASE WHEN  Condition  THEN  result
[ WHEN  Condition   THEN result ]
THEN   result         #其他的
END                       #结束

表数据如下:



看看俩个sql 语句和其相应的结果:
SUM:SELECT SUM(case WHEN age < 20 THEN 1 ELSE 0 END ) AS mini, SUM(case WHEN age > 20 AND age < 60 THEN 1 ELSE 0 END) AS high FROM person
查询结果为:



COUNT:SELECT COUNT(case WHEN age < 20 THEN 1 ELSE 0 END ) AS mini, COUNT(case WHEN age > 20 AND age < 60 THEN 1 ELSE 0 END) AS high FROM person 查询结果为:



这俩条 sql 语句 case when 的意思是 
对满足年龄 < 20 条件的返回 1,否则返回 0;    对满足年龄 > 20 且 < 60的返回 1,否则返回 0。
但结果却不一致。         
SUM 是对结果集的相加求和;
COUNT 是对结果集的统计数目。
所以 SUM 的值是 1,2; 而 COUNT 的值都是 4,即所有记录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: