一、count():返回、计算结果集的行数;
1、count()和sum()函数的区别:
一个(count)是统计结果集的总行数; 一个(sum)是计算所有(符合条件)数值的总和;
mysql> select * from chengji;
+------+---------+-------+
| name | subject | score |
+------+---------+-------+
| 张三 | 数学 | 90 |
| 张三 | 语文 | 50 |
| 张三 | 地理 | 40 |
| 李四 | 语文 | 55 |
| 李四 | 政治 | 45 |
| 王五 | 政治 | 30 |
+------+---------+-------+
6 rows in set (0.00 sec)
用count(列)的时候,即:select count(score)from chengji; 这句查询的意思是:先做 select score from chengji; 的查询,然后统计出返回的结果集的总行数;
sum(列)的时候,计算的是 符合条例 数值的总和;
2、count(*)和count(1)、count(columnName)的区别:
(1)从统计的结果上:
count(*)和count(1)会统计出结果集表中所有的记录数, 包含字段为NULL的记录;
count(columnName):在统计的时候,如果字段值为NULL,则不会计入总数(不统计字段为NULL的记录);
(1)从统计的效率上:
如果只有一个字段,则count(*)的效率是最优的;
如果有主键,则count(主键)的效率是最优的;
其他情况下,一般count(1