You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询遍历另一查询结果并计算对应姓名的平均年龄

解决方案

使用LEFT JOIN关联Names表和Person表,再按姓名分组计算平均年龄,就能批量得到每个姓名对应的结果,无需硬编码单个查询:

SELECT 
    n.name,
    AVG(p.age) AS average_age
FROM Names n
LEFT JOIN Person p ON n.name = p.name
GROUP BY n.name;

说明:

  • LEFT JOIN保证Names表中的所有姓名都会被输出,哪怕Person表中没有对应姓名的记录(此时平均年龄会返回NULL)。
  • 如果希望没有对应记录时显示0而非NULL,可以用COALESCE函数处理:
    SELECT 
        n.name,
        COALESCE(AVG(p.age), 0) AS average_age
    FROM Names n
    LEFT JOIN Person p ON n.name = p.name
    GROUP BY n.name;
    
  • 分组时必须基于Names表的name字段(n.name),确保每个姓名只输出一行结果。

内容的提问来源于stack exchange,提问作者S. Klostermeyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 21:52:02