您能否提供一个示例,说明如何仅使用雅典娜sql在下表中复合返回?预期输出在最右边的列中。
复合返回= (1 + prior.day.compound.return) * (1 + current.day.return) - 1。
如果日=1,则复合返回为每日返回。
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发布于 2018-09-14 02:29:48
延迟是与over clause一起使用的函数。
select Day , Company , DailyReturn
, lag(DailyReturn,1) over(partition by Company order by day) as PriorDayReturn
from yourtable在本例中,前一天返回将显示在每一行上,特别是当没有预先返回时(每个公司),其中值将为空。
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()的详细信息,请参阅(您的朋友)文档。
https://stackoverflow.com/questions/52323604
复制相似问题