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

SQL使用左连接结合GROUP BY求和问题(实现Excel SUMIF等效效果)

问题原因

  • 分组字段错误:当前按PoReportTable.COST分组,相当于每个不同的成本值单独分为一组,自然不会对同一个NR对应的多个成本做汇总,和按NR维度聚合的需求完全不符。
  • 缺少聚合函数:要实现SUMIF的求和效果,需要对PoReportTable.COST加SUM()聚合函数,否则不会做累加计算。
  • 选择了不必要的未聚合字段:SELECT语句中包含了PoReportTable.Short_Text、未聚合的PoReportTable.COST,这些字段既没有出现在GROUP BY子句中,也没有加聚合函数,SQLite宽松语法下不会报错,但会导致返回非预期的明细行,无法得到聚合结果。

修正后的代码

conn = sqlite3.connect("data_superstore.db")
query3=''' 
SELECT Lockedlist.NR,
Lockedlist.Programme,
SUM(PoReportTable.COST) AS COST
FROM Lockedlist
LEFT JOIN PoReportTable
ON Lockedlist.NR= PoReportTable.Tracking_Field
GROUP BY Lockedlist.NR, Lockedlist.Programme
ORDER BY COST DESC;
'''

如果需要把没有对应成本的NR的成本值显示为0而不是NULL,可以把求和部分改成SUM(IFNULL(PoReportTable.COST, 0)) AS COST即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:39:03