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

如何编写SQL语句根据a、b两列的值计算累计加减的结果字段

前提说明

  • 你的原始表必须存在一个可确定行顺序的字段(如自增ID、操作时间戳等),以下示例中统一用sort_id指代该字段,你需要替换成自己表中实际的排序字段
  • 方案基于你给出的「a、b两列总有一列为0,另一列非0」的规则设计

通用SQL方案(支持所有带窗口函数的数据库:MySQL 8.0+、PostgreSQL、SQL Server、Oracle等)

核心逻辑是每一行的计算增量为a-b:a非0时b为0,增量等于a,实现累加a的效果;b非0时a为0,增量等于-b,实现减去b的效果,再通过累计求和窗口函数输出结果即可。

SELECT 
    a,
    b,
    SUM(a - b) OVER (ORDER BY sort_id) AS result
FROM 你的表名;

MySQL 5.x 低版本兼容方案(不支持窗口函数的场景)

通过用户自定义变量实现累计计算:

SET @result := 0;
SELECT 
    a,
    b,
    @result := @result + a - b AS result
FROM 你的表名
ORDER BY sort_id;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:54:04