最近做数据模型时发现一个需要计算数据本年累计的一个需求,下面记录下:
如下图,需要计算每个人的本年累计和。
原始数据
这时候可以利用sql的一个分析函数来实现累计数据分析。
分析函数:sum(XX) over (partition by country order by date) 这个函数的意思是指: 对XX这个指标在country的分组,并且在date的顺序进行做累计数据计算。
例如用上面的原始数据写个sql:
select id,date,name,value,sum(value) over (partition by substr(date,1,4),name order by date) as sumValue from table
执行这条语句的结果如下:
这样就实现了累计的效果!!