首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Athena SQL复合返回

Athena SQL复合返回
EN

Stack Overflow用户
提问于 2018-09-14 00:55:17
回答 1查看 2K关注 0票数 1

您能否提供一个示例,说明如何仅使用雅典娜sql在下表中复合返回?预期输出在最右边的列中。

复合返回= (1 + prior.day.compound.return) * (1 + current.day.return) - 1。

如果日=1,则复合返回为每日返回。

代码语言:javascript
复制
Day | Company | Daily Return | Compound Return (Expected Output)
----------------------------------------------
1   |A        |0.05          |0.05
2   |A        |0.33          |0.40
3   |A        |0.12          |0.56
1   |B        |0.21          |0.21
2   |B        |-0.05         |0.15
EN

回答 1

Stack Overflow用户

发布于 2018-09-14 02:29:48

延迟是与over clause一起使用的函数。

代码语言:javascript
复制
select Day , Company , DailyReturn
     , lag(DailyReturn,1) over(partition by Company order by day) as PriorDayReturn
from yourtable

在本例中,前一天返回将显示在每一行上,特别是当没有预先返回时(每个公司),其中值将为空。

代码语言:javascript
复制
Day | Company | Daily Return | PriorDayReturn
----------------------------------------------
1   |A        |0.05          |NULL
2   |A        |0.33          |0.05
3   |A        |0.12          |0.33
1   |B        |0.21          |NULL
2   |B        |-0.05         |0.21

有关lag()over()的详细信息,请参阅(您的朋友)文档。

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

https://stackoverflow.com/questions/52323604

复制
相关文章

相似问题

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