怎樣使 mysql count(*) 統計項可以顯示為 0


假設要分別統計 小明,小王,小紅 三人本學期遲到次數。

由於小王沒有遲到過,所以缺勤流水表格當中沒有小王的記錄,如果我們這樣搜索:

1 select name, count(*) from {缺勤流水表格} where name in (小明,小王,小紅) group by name

那么我們得到的將是:

小明  3

小紅  4

並沒有小王的記錄!

解決方法 -- 運用CASE WHEN語句:

1 slelct name, count(case when name in (小明,小王,小紅) then 1 else 0 end)  from {缺勤流水表格}  group by name

得到的結果為:

小明  3

小王  0

小紅  4

 另外說一下,不是每中情況下都能找到這樣的 case when語句,也有可能需要我們對sql語句改動一下,例如:

 

1 select t1.name,  ifnull( t2.count,0)  from {缺勤流水表格} as t1
2 
3 join
4 
5 (select id, name, count(*) as count from {缺勤流水表格} where name in (小明,小王,小紅) group by name) as t2
6 
7 on t1.id = t2.id

 


免責聲明!

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



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