Teradata - Lag столбец и неограниченное PRECEDING - PullRequest
1 голос
/ 23 мая 2019

предположим, у меня есть следующая таблица в teradata sql.Как получить столбец 'final'.

Первое значение равно столбцу 'mount', второе равно final - цене (10-1), а третье равно (9-2).

hour    mount   price
0       10       1
1       10       2
2       10       3 

hour    mount   price   final
0        10      1       10
1        10      2       9
2        10      3       7

1 Ответ

1 голос
/ 23 мая 2019

Вы, кажется, хотите накопленную сумму - и тогда разница от 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 из текущей строки и затем позволяю накопленной сумме включать эту цену.

...