【Oracle】使用sql实现累计累加
--使用sql实现累计累加
--原表数据
select * from t;
--PLAN A(使用分析函数,又叫窗口函数) select id1 ,sum(cl)over(order by id1) as cl_sum from t;

--PLAN B(使用原生语法实现累计累加) /* 思路:自连接一下,拿出表1大于等于表2的id列,以表2的id列分组, 然后得到表2的id列和sum后的表1的cl列,出来的结果是一个id倒序的列表,
后面来一个以表2的id列的order by给他再次倒序即可 */ select t2.id1 ,sum(t1.cl) as cl_sum from t t1 ,t t2 where t1.id1<=t2.id1 group by t2.id1;
select t2.id1 ,sum(t1.cl) as cl_sum from t t1 ,t t2 where t1.id1<=t2.id1 group by t2.id1 order by t2.id1;--加上order by



浙公网安备 33010602011771号