Вы, кажется, хотите накопленную сумму - и тогда разница от mount
:
select hour, mount price,
(mount + price -
sum(price) over (order by hour rows between unbounded preceding and current row)
) as final
from t;
Вы действительно хотите сумму до предыдущего ряда. Но если вы используете:
sum(price) over (order by hour rows between unbounded preceding and 1 preceding)
, тогда вам нужно иметь дело с NULL
значениями. Вместо этого я просто добавляю price
из текущей строки и затем позволяю накопленной сумме включать эту цену.