一句SQL計算不同條件的數量

SQL条件计数与求和技巧
本文介绍了一种在SQL中使用case when语句进行条件计数和求和的方法,这种方法可以避免使用子查询,提高查询效率并增强代码可读性。通过具体示例展示了如何针对不同条件对数据进行高效统计。

     經常做統計的人有體會,常常會在一個表格中體現不同條件下的某個商品的數量。比如倉庫的進出庫統計,要統計每個批次中每種貨物的數量。通常的做法是通過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,否則不管其他什么,都會被計數。

转载于:https://www.cnblogs.com/sicily/archive/2009/03/11/1409130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值