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

SQLite如何关联两表对比Table1分组AVG值与Table2的Data2字段

原查询错误原因

  • 子查询SELECT AVG(Data) FROM Table1未按Name分组,计算的是整张Table1的全局平均值,不是每个Name对应的分组平均值
  • 子查询SELECT Name FROM Table1会返回多条记录,直接放在SELECT字段中会触发语法错误
  • 未建立Table1和Table2的关联逻辑,无法匹配两个表的对应记录
  • 存在语法问题:Table2.*后多了多余的逗号,且Table2不存在Name字段,只有Name2字段,GROUP BY的字段不存在

正确查询语句

优先用先分组后关联的写法,性能更优:

SELECT t1.Name, t1.AVGData, t2.Name2, t2.Data2
FROM (
    -- 先对Table1按Name分组计算平均值
    SELECT Name, AVG(Data) AS AVGData
    FROM Table1
    GROUP BY Name
) t1
-- 和Table2按名称关联
INNER JOIN Table2 t2 
ON t1.Name = t2.Name2;

如果需要保留Table2中没有匹配到Table1的记录,把INNER JOIN改成LEFT JOIN即可,无匹配的位置会自动填充NULL值。

内容的提问来源于stack exchange,提问作者bOOm_shacalaca

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 04:06:12