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

如何在SQLite中按记录计算客户累计余额?

SQLite中按客户分组计算累计余额的实现方法

我有一张名为transaction_table的表,当前使用如下SQL语句查询:

select 
    t._id, 
    t.description, 
    t.debit, 
    t.credit,
    (t.debit - t.credit) blnc,
    t.curr_id, 
    t.cus_id 
from transaction_table t

该语句返回的blnc列为单条记录的收支差额,结果如下:

this col
_id  description             debit    credit     blnc   curr_id   cus_id
-------------------------------------------------------------------------
1    cr for customer 1       0.0     30.0      -30.0    1         1
2    cr for customer 1       0.0    500.0     -500.0    1         1
3    dbt for customer 1     70.0      0.0       70.0    1         1
4    cr for customer 2       0.0    600.0     -600.0    1         2
5    dat for customer 2    100.0      0.0      100.0    1         2
6    dat for customer 2    300.0      0.0      300.0    1         2

但我需要按cus_id分组,计算每条记录的累计余额,期望得到如下结果:

_id  description             debit    credit     blnc   curr_id   cus_id
-------------------------------------------------------------------------
1    cr for customer 1       0.0     30.0      -30.0    1         1
2    cr for customer 1       0.0    500.0     -530.0    1         1
3    dbt for customer1      70.0      0.0      470.0    1         1
4    cr for customer 2       0.0    600.0     -600.0    1         2
5    dat for customer 2    100.0      0.0     -500.0    1         2
6    dat for customer 2    300.0      0.0     -200.0    1         2

解决方案

在SQLite中,可以利用窗口函数实现分组累计计算,具体SQL语句如下:

select 
    t._id, 
    t.description, 
    t.debit, 
    t.credit,
    SUM(t.debit - t.credit) OVER (PARTITION BY t.cus_id ORDER BY t._id) as blnc,
    t.curr_id, 
    t.cus_id 
from transaction_table t

关键部分说明:

  • SUM(t.debit - t.credit):计算每条记录的收支差额并累计求和
  • OVER (PARTITION BY t.cus_id):按cus_id对数据分组,确保累计计算仅在同一客户内进行
  • ORDER BY t._id:指定按_id排序,保证累计顺序与交易发生的先后一致(假设_id是递增的交易序号)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:30:50