count(*) 、count(列名)、count(1)的区别
时间: 2023-09-22 14:09:18 浏览: 167
count(*)表示统计表中所有行的数量,包括空值和重复值。
count(列名)表示统计该列中非空值的数量,不包括重复值。
count(distinct 列名)表示统计该列中不同的非空值的数量,不包括重复值。
例如,有一张学生表,其中有一个“性别”列,包含“男”、“女”、“未知”三种取值。使用count(*)可以统计表中所有学生的数量;使用count(性别)可以统计性别列中非空值的数量,即男女学生的数量;使用count(distinct 性别)可以统计性别列中不同的非空值的数量,即男女两种性别的数量。
相关问题
count(1)与count(*)、count(列名)区别
count(1)和count(*)的结果是一样的,都是返回查询结果集中的行数。而count(列名)则是返回指定列非空值的数量。
但是,在实际应用中,count(*)的效率比count(1)和count(列名)高,因为count(*)不会忽略NULL值,而count(1)和count(列名)需要检查每一行的值是否为NULL,因此在数据量较大时,count(*)的效率更高。
count(1)、count(*)与count(列名)区别
count(1)、count(*)和count(列名)都是用来统计行数的,但它们之间有一些区别。
- count(1)和count(*)是等价的,它们都会统计查询结果集中的行数,包括NULL和重复值。
- count(列名)只会统计该列存在非NULL值的行数,不会统计NULL值和重复值。
因此,如果只是为了统计行数,使用count(1)或count(*)更为常见和推荐,而如果想要统计某一列非NULL值的数量,使用count(列名)更为合适。
阅读全文