您能否提供一个示例,说明如何仅使用athena sql在下表中组合收益?预期输出在最右边的列中。
复合收益=(1 +上一交易日复合收益)*(1 +上一交易日复合收益)-1。
如果day = 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
答案 0 :(得分:0)
延迟是与over clause
结合使用的函数。
select Day , Company , DailyReturn
, lag(DailyReturn,1) over(partition by Company order by day) as PriorDayReturn
from yourtable
在此示例中,前一天的收益显示在每一行上,当没有(按公司)的先前收益(其中值将为NULL)时,请排除。
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()