数据库的聚合函数中的sum函数,如果参数是一个判断条件,那计算结果是怎么样的?

数据库的聚合函数中的sum函数,如果参数是一个判断条件,那计算结果是怎么样的?

问题描述:

数据库的聚合函数中的sum函数,如果参数是一个判断条件,那计算结果是怎么样的?

比如select  sum(sal<5000) from t_emp

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,count函数也可以使用对应的if判断条件,比如:

统计总数-->count(if(条件字段名=值,true,null))

http://img1.sycdn.imooc.com//climg/600bfd0d0978a49b05220143.jpg

统计总数去重复值-->count(DISTINCT 需要计算count的字段名,if(条件字段名=值,true,null))

http://img1.sycdn.imooc.com//climg/600bfd5109f15f3f06200171.jpg

祝学习愉快!

好帮手慕小班 2021-01-23 17:20:50

同学你好,sum是求和函数,但是当sum函数使用if条件判断时,条件为真,执行字段名求和也就是累加,条件为假时为0求和(当然最后结果还是0)。

这里的累加是计算满足条件的数据总数(数量),如果满足条件,那么数据总数加1。对应上面的例子,sal小于5000的条件成立的有13条数据,对应最后的结果就是13。

祝学习愉快!

  • 提问者 谁叫我这么坏 #1

    那count函数是只有count(*)和count(列名)这两种形式吗?有没有类似sum求字段名累加的或者其他形式呢?

    2021-01-23 18:05:44
好帮手慕小班 2021-01-23 15:35:14

同学你好,它会按照条件来实现同样聚合函数的效果,比如:

http://img1.sycdn.imooc.com//climg/600bd16e09b072a703620165.jpg

在表中sal小于5000的是有13个。

如果同学想表达的不是这个意思,还麻烦同学具体描述一下。

祝学习愉快!

  • 提问者 谁叫我这么坏 #1

    为啥不是把小于5000的sal都加起来啊?

    2021-01-23 16:03:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师