count(1)、count(*) 与 count(列名) 的区别
时间: 2023-09-05 19:11:19 浏览: 41
count(*)表示统计表中所有行的数量,包括空值和重复值。
count(列名)表示统计该列中非空值的数量,不包括重复值。
count(distinct 列名)表示统计该列中不同的非空值的数量,不包括重复值。
例如,有一张学生表,其中有一个“性别”列,包含“男”、“女”、“未知”三种取值。使用count(*)可以统计表中所有学生的数量;使用count(性别)可以统计性别列中非空值的数量,即男女学生的数量;使用count(distinct 性别)可以统计性别列中不同的非空值的数量,即男女两种性别的数量。
相关问题
count(1)、count(*) 与 count(列名) 的区别?
count(1)、count(*) 与 count(列名) 的区别如下:
1. count(1):表示统计满足条件的行数,括号中的 1 表示给每一行都赋一个值为1,然后对这些1求和,因为对每行都赋了个值,所以结果就是行数。
2. count(*):表示统计满足条件的行数,不区分 NULL 和非 NULL 值,可以说是最常用的计算表中行数的方法。
3. count(列名):表示统计该列中非 NULL 值的数量。如果列中有 NULL 值,则不会统计进去。
总之,这三个计数函数的区别在于对 NULL 值的处理和统计方式。在实际应用中,一般选择 count(*) 或 count(列名) 进行统计。如果只需要了解满足条件的行数,可以选择 count(1)。
count(1)与count(*)、count(列名)区别
count(1)和count(*)的结果是一样的,都是返回查询结果集中的行数。而count(列名)则是返回指定列非空值的数量。
但是,在实际应用中,count(*)的效率比count(1)和count(列名)高,因为count(*)不会忽略NULL值,而count(1)和count(列名)需要检查每一行的值是否为NULL,因此在数据量较大时,count(*)的效率更高。