sum over可以完美解决历史累加的问题
其中有数据的跨年问题,需要年度重新统计,就在partition by中增加年字段即可
select
PROJ_ID -- 项目id
,PLAN_MTH -- 计划月
,PLAN_ORDER_AMT AS PLAN_ORDER_AMT_M -- 计划认购金额(月)
,sum(PLAN_ORDER_AMT) over (partition by PROJ_ID,PLAN_YR order by PLAN_MTH ) AS PLAN_ORDER_AMT_Y -- 计划认购金额(年)
,PLAN_CNTRT_AMT AS PLAN_CNTRT_AMT_M -- 计划签约金额(月)
,sum(PLAN_CNTRT_AMT) over (partition by PROJ_ID,PLAN_YR order by PLAN_MTH ) AS PLAN_CNTRT_AMT_Y -- 计划签约金额(年)
FROM edw.CAMP_PROJ_MTH_PLAN
WHERE DT='20210831'
AND PROJ_ID IS NOT NULL
AND proj_id ='013c68d27e6d49e48fa220e02fa56fbf'
每个sum值如果要保持一致