mysql统计字段不同值数量之sum(case...when)

话不多说,直接举例咋用。

先知道一下常用语法:
sum(case 属性名 when 属性值1 then 1 else 0 end),意思就是某个属性下为属性值1就加1个数量,否则就作0统计

看我的表players的长相:
在这里插入图片描述
1、统计男生和女生的数量

SELECT sum(CASE gender WHEN 'man' THEN 1 ELSE 0 END) as man_numbers, 
	   sum(case gender when 'woman' then 1 else 0 end) as woman_numbers
from players;

结果:
在这里插入图片描述
2、分组下统计:统计不同城市下男生和女生的数量

-- 统计不同城市下男性和女性的数量
SELECT city,sum(CASE gender WHEN 'man' THEN 1 ELSE 0 END) as man_numbers, 
				sum(case gender when 'woman' then 1 else 0 end) as woman_numbers
from players
group by city;

结果:
在这里插入图片描述
下次给我们一份订单表,表里面的订单类型有“机票”和“酒店”,让我们分开统计什么机票订单的数量,酒店订单的数量,是不是你就会了呢O(∩_∩)O~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章