如何编写SQL查询计算Households表中用户的平均年龄?
计算用户平均年龄的SQL解决方案
你可以直接对计算出的单个用户年龄使用AVG()聚合函数来得到平均年龄,有两种常用写法:
- 直接在聚合函数中计算年龄:
SELECT AVG(DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), Dates)), '%Y') + 0) AS average_age FROM Households;
- 通过子查询先获取所有用户的年龄,再计算平均值:
SELECT AVG(age) AS average_age FROM ( SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), Dates)), '%Y') + 0 AS age FROM Households ) AS user_ages;
注意:你的原语句里把字段名写成了Date,但实际表字段是Dates,要对应上才不会报错。用你提供的测试数据计算的话,User1当前年龄是22岁(假设当前是2024年),User2是19岁,平均年龄就是20.5岁,执行上面的语句就能得到这个结果。
内容的提问来源于stack exchange,提问作者drossosdc
相关产品推荐
相关产品推荐

