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

如何计算滚动结余?为Table2生成Running Balance列的方法

计算项目滚动结余(初始结余扣减累计消耗)

现有两张数据表:

  • Table1:存储各项目的初始结余,包含Item(项目)和Balance(初始结余)字段
  • Table2:记录各项目的消耗数据,包含Item(项目)和consume(消耗量)字段

需要为Table2新增滚动结余列,计算逻辑为:项目初始Balance减去该项目当前及之前所有记录的累计consume,结果允许为负数(表示缺货)。

原表数据

Table 1(初始结余表)

ItemBalance
A100
B200
C500

Table 2(消耗记录表)

Itemconsume
A10
A20
A20
B120
B100
C100
C100
C200

预期结果

Itemconsume滚动结余
A1090
A2070
A2050
B12080
B100-20
C100400
C100300
C200100

实现代码(SQL示例)

利用窗口函数实现分组累计计算,关联两张表后按项目分组统计累计消耗,再用初始结余减去累计值得到滚动结余:

SELECT 
    t2.Item,
    t2.consume,
    t1.Balance - SUM(t2.consume) OVER (PARTITION BY t2.Item ORDER BY (SELECT NULL)) AS 滚动结余
FROM Table2 t2
INNER JOIN Table1 t1 ON t2.Item = t1.Item;

说明:如果Table2中有记录顺序的字段(如时间戳create_time),建议将ORDER BY (SELECT NULL)替换为该字段,保证累计顺序准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:10:32