首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Teradata - Lag列和无界前置

Teradata - Lag列和无界前置
EN

Stack Overflow用户
提问于 2019-05-23 05:38:43
回答 1查看 102关注 0票数 1

假设我在teradata sql中有下面的表。如何获取“最终”列。

第一个值等于“mount”列,第二个值等于最终价格(10-1),第三个值等于(9-2)。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 05:40:57

您似乎想要一个累积和--然后是与mount的区别

代码语言:javascript
复制
select hour, mount price,
       (mount + price -
        sum(price) over (order by hour rows between unbounded preceding and current row)
       ) as final
from t;

您真的希望将总和加到前一行。但是如果你使用:

代码语言:javascript
复制
        sum(price) over (order by hour rows between unbounded preceding and 1 preceding)

然后,您将需要处理NULL值。相反,我只需从当前行添加price,然后让累积和包括该价格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56265368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档