count(0)、count(1)和count(*)、count(列名)、sum(列名)的区别

作者: cheng 发布时间: 2022-06-21 浏览: 2161 次 编辑

1、从执行结果上分析:

(1)、count(0)、count(1)和count(*)不会过滤空值

(2)、count(列名)会过滤空值

ps:同样的数据


2、从执行效率上分析:

(1)、如果列为主键,count(列名)效率优于count(1)

(2)、如果列不为主键,count(1)效率优于count(列名)

(3)、如果表中存在主键,count(主键列名)效率最优

3、总结:

(1)、count(值),如果这个值不是null计1,如果这个值是null计0

count(0)、count(1)可以想象成在表中有一个字段,这个字段的值去全是0或1

count(*)执行时会把*翻译成字段的具体名字,效果同count(0)、count(1)一样,只不过多了个翻译的过程,效率相对会低一点

(2)、在用sum函数对某列进行求和的时候,可以先对该字段值为null的行进行赋值,以确保结果的正确性

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。