Si entiendo bien, esta consulta lo resuelve:
Código SQL
[-]
SELECT
*,
SUM(debe - haber) OVER (
PARTITION BY cli --quitar si no debe calcular saldo por cliente, sino global
ORDER BY id
) AS saldo_calculado
FROM mytable
ORDER BY id, fecha
Una explicacion de las funciones windows/cte (en postgresql que normalmente es lo que tiene mejor documentacion):
http://www.postgresqltutorial.com/po...ndow-function/
Código:
id | fecha | cli | debe | haber | saldo | saldo_calculado
-----+------------+-----+------+-------+-------+-----------------
80 | 2019-08-27 | 11 | 120 | 0 | 120 | 120
81 | 2019-08-27 | 11 | 50 | 0 | 170 | 170
82 | 2019-08-27 | 11 | 250 | 0 | 420 | 420
131 | 2019-08-29 | 11 | 300 | 0 | 720 | 720
261 | 2019-09-03 | 11 | 30 | 0 | 750 | 750
273 | 2019-09-14 | 11 | 0 | 20 | 730 | 730
274 | 2019-09-01 | 11 | 0 | 150 | 580 | 580
275 | 2019-09-12 | 11 | 0 | 100 | 480 | 480