select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
order by id
Husla: http://sqlfiddle.com/#!15/97dc5/2/0
Zvažte změnu názvů sloupců „In“ / „Out“, abyste je nemuseli dávat do uvozovek. (Jsou to vyhrazená slova)
Pokud jste chtěli pouze jednoho zákazníka (customer_id =2):
select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
where customer_id = 2
order by id
Pokud by se váš dotaz týkal více zákazníků a chtěli jste průběžný zůstatek, který RESTARTUJE u každého zákazníka, můžete použít:
select t.*, sum("In"-"Out") over( partition by customer_id
order by customer_id, id ) as balance_by_cust
from tbl t
order by customer_id, id