Sql根据不同条件统计总数的方法(count和sum)
前言
经常会遇到根据不同的条件统计总数的问题,一般有两种写法:count和sum都可以
数据准备:

方法一 :Count
代码:
SELECT COUNT( CASE WHEN age > 20 AND age < 25 THEN 1 ELSE NULL END ) AS cnt0, COUNT( CASE WHEN age >= 25 AND age < 30 THEN 1 ELSE NULL END ) AS cnt1 FROM USER;
结果:

方法二:sum
代码:
SELECT SUM( CASE WHEN age > 20 AND age < 25 THEN 1 ELSE 0 END ) AS cnt0, SUM( CASE WHEN age >= 25 AND age < 30 THEN 1 ELSE 0 END ) AS cnt1 FROM USER;
结果:

当然也可以和count代码一样ELSE后面也写为NULL
SELECT SUM( CASE WHEN age > 20 AND age < 25 THEN 1 ELSE NULL END ) AS cnt0, SUM( CASE WHEN age >= 25 AND age < 30 THEN 1 ELSE NULL END ) AS cnt1 FROM USER;
后记
其实原理很简单,count统计的时候有满足条件的就加1,没有满足的变为NULL,我们知道聚合函数统计的时候是忽略null值的;而sum原理和coun相似,不过ELSE后面可以是0或者NULL。
到此这篇关于Sql根据不同条件统计总数的文章就介绍到这了,更多相关sql统计总数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于SQL Server数据库中的用户权限和角色管理功能实现
在本文中,我们介绍了在SQL Server中创建用户、分配权限和管理角色的基础知识,请记住定期审查和更新用户权限,以符合您组织的安全政策和数据访问要求,这篇文章主要介绍了关于SQL Server数据库中的用户权限和角色管理,需要的朋友可以参考下2024-03-03
在SQL Server中使用 Try Catch 处理异常的示例详解
这篇文章主要介绍了如何在 SQL Server 中使用 Try Catch 处理异常,通过实例代码了解 SQL Server 中的 Try-Catch 实现,本文给大家介绍的非常详细,需要的朋友可以参考下2022-07-07
SQL SERVER 2012新增函数之字符串函数FORMAT详解
这篇文章主要给大家介绍了关于SQL SERVER 2012新增函数之字符串函数FORMAT的相关资料,文中通过实例介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。2017-03-03
SQLserver2000 企业版 出现"进程51发生了严重的异常"错误的处理方法
SQL2000 企业版 出现“进程51发生了严重的异常”错误的解决方法,利用了微软官方的工具。2009-07-07


最新评论