一句SQL計算不同條件的數量
經常做統計的人有體會,常常會在一個表格中體現不同條件下的某個商品的數量。比如倉庫的進出庫統計,要統計每個批次中每種貨物的數量。通常的做法是通過Select子查詢來做,不能說這種做法是錯的,但這樣做效率不高,而且閱讀性也不高,而且這些信息往往是在一張基礎表中,應該能不通過子查詢的方式,直接計算出來。經過一番研究,終于找到方法了。
select
Count(case when (t.字段=條件) then 1 else null end) as "名稱1",
Count(case when (t.字段=條件) then 1 else null end) as "名稱2"
from 表名 t
同樣,也可用在SUM的函數上
select
sum(case when (t.字段=條件) then 字段或數字 else 0 end) "名稱1",
sum(case when (t.字段=條件) then 字段或數字 else 0 end) "名稱2"
from 表名 t
要注意的是,在Count的時候,如果不想被計數,值一定要是null,否則不管其他什么,都會被計數。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步