count函數條件不為null的時候顯示結果。即使為false也也會顯示結果。
可以是使用if條件或者case when語句。如果條件不為null即需要的結果。
使用count()函數實現條件統計的基礎是對於值為NULL的記錄不計數,常用的有以下三種方式,假設統計num大於200的記錄
select count(num > 200 or null) from a;
select count(if(num > 200, 1, null)) from a
select count(case when num > 200 then 1 end) from a
sum函數是條件為True才返回結果。
下面結果等效
select name,COUNT(CASE WHEN score<60 THEN 1 END) as sum_score,AVG(score) as avg_sorce from tb_stu GROUP BY name HAVING SUM(score<60)>=2;
select name,COUNT(if(score<60,1,null)) as sum_score,AVG(score) as avg_sorce from tb_stu GROUP BY name HAVING SUM(score<60)>=2;
select name,sum(score<60) as sum_score,AVG(score) as avg_sorce from tb_stu GROUP BY name HAVING SUM(score<60)>=2;