SQL面试题更新 2026-08-05

请写出 SQL 语句,实现从用户表中按性别分组统计每个性别的用户人数。

编码实现技术原理SQL

考察说明

考查 SQL 基础分组聚合能力,重点是 GROUP BY 与 COUNT 的正确使用。

回答思路

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