您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何基于另一列计算接下来的n行的平均值-SQL(Oracle)

如何基于另一列计算接下来的n行的平均值-SQL(Oracle)

我认为计算是:

select t.*,
       premium / (12 / yearly_payment_freq)) as monthly_premium_calculated
from mytable t;

编辑:

我知道,您还需要在中间几个月内进行这种分配。因此,您可以通过计算非零付款的数量来分配组。然后:

select t.*,
       ( max(premium) over (partition by policy_id, grp) /
         (12 / yearly_payment_freq)
       ) as monthly_premium_calculated
from (select t.*,
             sum(case when premium > 0 then 1 else 0 end) over (partition by policy_id order by payment_date) as grp
      from mytable t
     ) t;

一个db <> fiddle(它使用Postgres,因为它比Oracle更容易设置)。

SQLServer 2022/1/1 18:26:03 有280人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶