统计报表一个字段下的不同值统计

114 阅读1分钟

微信技术群:Day9884125

背景

   我们在sql做统计报表的时候,当比如name字段中有张三,李四,王武时候,统计name为他们三个的时候有多少数据。我们可以使用case when做处理。

代码演示

select 
    count(shopName),							-- 总量
    -- <!-- 下单成功量 -->
    sum(case when shop_status = 1 then 1 else 0 end) as xiadanchenggong,
    -- <!-- 退款数量 -->
    sum(case when shop_status !=0 then 1 else 0 end) as tuikuan,
    -- <!-- 下单失败量 -->
    sum(case when shop_status = 5 then 1 when sms_status =6 then 1 else 0 end) as goumaishibai
from shop
group by shopName

代码解释

sum(case when shop_status = 5 then 1 when sms_status =6 then 1 else 0 end)
   他的含义是当shop_status为5的时候,给他设置为1,当shop_status为6的时候给他设置为1,如果不是这两种状态的设置为0。然后对进行求和