select t.*, sum(“In”-“Out”) over(order by id) as balance
from tbl t
order by id
小提琴: http
**://sqlfiddle.com/#!15/97dc5/2/0**
考虑更改列名“ In” /“ Out”,这样您就不必在引号中加上引号了。(它们是保留字)
如果只需要一位客户(customer_id = 2):
select t.*, sum("In"-"Out") over(order by id) as balancefrom tbl twhere customer_id = 2order by id
如果您的查询要跨越多个客户,并且您希望与每个客户重新开始保持平衡,则可以使用:
select t.*, sum("In"-"Out") over( partition by customer_id order by customer_id, id ) as balance_by_custfrom tbl torder by customer_id, id
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)