cumprod作为聚合函数与group by 联用的问题

想取每只券在时序上的累计收益率

类似这样:
ptf_stock_indic_sum = select 
                        swcode,
                        sum(return_ctbt * adj_value) as return_ctbt_sum,
                        cumprod(1+return_ratio)-1 as cum_return_ratio,
                        sum(weight)\tradeDayCount as avg_weight
                        from lj(ptf_positions_stock, pf_adj_value, `trade_dt)
                        group by swcode;

但是这样会报错。

请先 登录 后评论

1 个回答

Feng Gao

cumprod,返回的是等同长度的向量,跟context by是可以一起使用,不能与group by一起使用

如果是取累计的乘积,可以使用函数,prod,统计乘积,比如

prod(1 2 3);
结果为6

使用的时候注意,如果乘积过大,超过了最大值,就无法显示了

请先 登录 后评论
  • 1 关注
  • 0 收藏,884 浏览
  • dongmange 提出于 2022-03-18 00:45

相似问题