首页 > 解决方案 > SQL 增加(而不是替换)行 x 和 y 之间超大表上的所有用户余额,同时不截断余额表

问题描述

想象一下,我有一个超大的事务事务表,每分钟都在增长:

transaction桌子

ID 用户身份 数量 物品
0 用户0 1 项目1
1 用户1 -1 项目1
2 用户0 -1 项目1
3 用户1 1 项目1
... ... ... ...

我需要每隔几分钟计算一次余额,所以我会运行一个(可能很长)查询,让我们“当前”生成balance表的初始值,并可能将“最后计算的 transactionId”存储在 diff 表中,所以后续运行只需要运行更少的计算,然后将它们的值作为“增量/减量”应用

balance运行 0-1 行后的表

用户 物品 平衡
用户0 项目1 1
用户1 项目1 -1
... ... ...

balance运行第 2-3 行后的表

用户 物品 平衡
用户0 项目1 0
用户1 项目1 0
... ... ...

如何以迭代方式运行此计算,而不需要截断balance表格?

标签: sqlpostgresqlincrement

解决方案


推荐阅读