用case when then else 语句,用法如同if.
select sum(if(id<500,1,0)) as A,sum(if(id>=500 && id<1000,1,0)) as B from customer;
+---+-----+
| A | B |
+---+-----+
| 4 | 204 |
+---+-----+
1 row in set
这样是按条件单个统计,为了解决UNION ALL 的问题 查到了用IF 的方法
SELECT count(a.id) '合格'
FROM
tb a where a.ispassed='03'; -- 3得到有多少合格
SELECT count(a.id) '不合格'
FROM
tb a where a.ispassed='02';