- count()四种写法:
- count(*) 包括所有列,相当于统计表的行数,不忽略列值为NULL的记录。
- count(1) 忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替,不忽略列值为NULL的记录。
- count(列名) 只包括指定列,返回指定列的记录数,会忽略列值为NULL的记录。
- count(distinct 列名) 只包括列名指定列,返回指定列的不同值的记录数,忽略列值为NULL的记录
- 执行效率比较
- 若列为主键,count(列名)效率优于count(1)
- 若列不为主键,count(1)效率优于count(列名)
- 若表中存在主键,count(主键列名)效率最优
- 若表中只有一列,则count(*)效率最优
- 若表有多列,且不存在主键,则count(1)效率优于count(*)
- 特例
- select count(’’) from table;-返回表的记录数
- select count(0) from table;-返回表的记录数
- select count(null) from table;-返回0
本文详细解析了SQL中的count()函数的四种使用方法,包括count(*), count(1), count(列名)和count(distinct列名),并对比了它们在不同情况下的执行效率。此外,还提供了一些特殊的count()函数用法。
704

被折叠的 条评论
为什么被折叠?



