mysql的count和sum使用條件表達式


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM