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

MySQL账本式数据库按acc_id动态计算用户余额问题求助

解决MySQL账本式数据库用户余额跨累加问题

问题根源:你的查询中窗口函数未按acc_id分区,导致所有用户的交易金额被统一累计,而非每个用户独立计算余额。

修正后的SQL查询代码:

SELECT 
    acc_id,
    trans_date,
    credit,
    debit,
    SUM(credit - debit) OVER (PARTITION BY acc_id ORDER BY trans_date) AS balance
FROM transactions
ORDER BY trans_date;

关键修正点说明:

  • PARTITION BY acc_id:将交易数据按用户账户ID分组,确保每个用户的余额计算完全独立
  • ORDER BY trans_date:按交易发生时间排序,保证余额按交易时序正确累加
  • SUM(credit - debit):计算每笔交易的净金额变动,累计后得到当前时刻的用户余额

修正后效果:每个用户的余额从0开始,按自身交易记录独立累加,VA473的余额保持原有正确计算,新用户的第1笔交易余额为100,第2笔为250,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:55:20