请写出 SQL 语句,实现从用户表中按性别分组统计每个性别的用户人数。
考察说明
考查 SQL 基础分组聚合能力,重点是 GROUP BY 与 COUNT 的正确使用。
回答思路
- 【回答框架 1】核心是在用户表上按性别字段分组,并对每组计数。标准写法为 SELECT 性别字段, COUNT(*) FROM 用户表 GROUP BY 性别字段,其中性别字段替换为实际列名如 gender。
- 【回答框架 2】COUNT(*) 统计每组的行数,包含所有非空行。若只想统计非空用户 ID,可用 COUNT(用户ID),但若为 NOT NULL,效果等同。
- 【回答框架 3】执行顺序是先按性别分组,再对每组调用聚合函数。若需要只显示某类性别,可加 HAVING 条件,但本题通常不需要。
- 【回答框架 4】应明确用户表名和性别列名,若未知可使用通用占位符,如在面试中说明表名为 user,性别列为 gender。
- 【关键点 1】使用 GROUP BY 性别字段。
- 【关键点 2】配合 SELECT 中的聚合函数 COUNT。
- 【关键点 3】返回结果包含性别值和对应人数。
- 【易错点 1】若 SELECT 中同时出现非聚合列和聚合列,非聚合列必须分在 GROUP BY 中,否则可能报错。
- 【易错点 2】COUNT(列名) 与 COUNT(*) 结果可能不同,若列含 NULL,COUNT(列名) 不计 NULL,需根据需求选择。