请你编写一段 SQL 查询,统计出客户的总数量,也就是客户表中共有多少条记录。
考察说明
考查对 SQL 基础聚合函数 COUNT 的掌握,尤其是统计记录数与统计非空字段值的区别。
回答思路
- 【回答框架 1】使用 COUNT(*) 可以统计表中所有行的数量,包括所有列均为 NULL 的行,这是统计总记录数的标准做法。COUNT(1) 与 COUNT(*) 在绝大多数数据库中的执行计划和结果等价,可以放心使用。
- 【回答框架 2】如果客户表中有主键或非空唯一字段,例如客户ID,也可以使用 COUNT(客户ID) 来统计记录数。但 COUNT(某字段) 会忽略该字段为 NULL 的行,因此若该字段存在 NULL 值,结果会小于实际记录数,不适合作为总数量统计。
- 【回答框架 3】实际的 SQL 语句形如 SELECT COUNT(*) FROM 客户表;其中客户表名应替换为实际表名,例如 customers、client 等,字段情况以实际表结构为准。
- 【关键点 1】COUNT(*) 统计的是所有行数,不会忽略任何行。
- 【关键点 2】COUNT(字段) 会忽略该字段为 NULL 的行。
- 【关键点 3】在表中存在主键或非空字段时,COUNT(该字段) 可与 COUNT(*) 等价,但应优先选择 COUNT(*)。
- 【易错点 1】不要使用 COUNT(可空字段) 来统计总行数,否则可能漏掉该字段为 NULL 的记录。