Mysql统计不同区间的数据
1.sum(if(表达式,1,0))
select count(*),sum(if(amount<=10,1,0)as `数量小于10`,sum(if(amount>10 and amount<=20,1,0)as `数量小于20大于10`
from orders;
统计总客户数,和销量在(0,10]的客户数,(10,20]的客户数所用表orders为:
| Company | amount |
|---|---|
| Ajjhd | 2 |
| Daljj | 12 |
| Rajs | 9 |
| Fghsd | 14 |
| … | … |
2.count(if(表达式,true,null))
解析:
- sum(if(category=1,size,0))中 sum函数返回一个值类型的数值,如果category=1,则返回size,如果category不等于1就返回0。
- count(if(category=1,true,null))中count函数返回一个布尔值类型的数值,如果category=1,返回true,如果category不等于1返回null,如果写成count(If(category=1,1,0) 则返回的全是true,也就是说全都会计数,而count()间断内容是true还是null,如果不是null就计数,如果是null就不计数。
本篇文章来源于CSDN:https://blog.csdn.net/qq_35297368/article/details/120185661
微信扫描下方的二维码阅读本文

Comments NOTHING