Teradata-滞后列和未绑定的前导

时间:2019-05-22 21:38:43

标签: sql teradata lag

假设我在teradata sql中具有下表。 如何获得“最终”列。

第一个值等于“ 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 个答案:

答案 0 :(得分:1)

您似乎想要一个累加的总和,然后是与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,然后让累计金额包括该价格。