请编写一条 SQL 语句,从用户表中统计出不同性别各自的平均年龄,并按照性别进行分组显示。
考察说明
考察 SQL 基础中聚合函数与 GROUP BY 的使用,以及分组统计的编写能力。
回答思路
- 【回答框架 1】SQL 分组统计的核心是使用聚合函数 AVG 计算平均值,并用 GROUP BY 将行按性别分组。基本语法为 SELECT gender, AVG(age) FROM user_table GROUP BY gender。
- 【回答框架 2】执行逻辑是先按 gender 分组,再对每组内的 age 求平均值,返回每组一行结果,包含性别和平均年龄。
- 【回答框架 3】如果需要更清晰的列名,可以使用别名,例如 SELECT gender, AVG(age) AS avg_age FROM user_table GROUP BY gender。
- 【回答框架 4】注意 AVG 会忽略 NULL 值,如果 age 列存在 NULL,平均值计算会跳过这些行,导致结果可能不是全量用户平均。
- 【回答框架 5】该查询不涉及多表连接或条件过滤,属于基础聚合语句,重点在于正确使用 AVG 和 GROUP BY。
- 【关键点 1】SELECT gender, AVG(age) 是核心写法。
- 【关键点 2】GROUP BY gender 实现分组。
- 【关键点 3】可以使用 AS 为平均年龄列起别名。
- 【关键点 4】AVG 忽略 NULL,需注意数据质量。
- 【易错点 1】混淆 GROUP BY 与 ORDER BY,分组后排序需另加 ORDER BY。
- 【易错点 2】忘记 GROUP BY 子句导致聚合错误。
- 【易错点 3】将 gender 误写为年龄或其他列,导致分组不准确。