【Oracle】使用sql实现累计累加

--使用sql实现累计累加
--原表数据
select * from t; 表t的数据-1

--PLAN A(使用分析函数,又叫窗口函数)
select  id1
       ,sum(cl)over(order by id1) as cl_sum 
from t;

Oracle使用分析函数实现累计累加-1


--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;
oracle原生语法实现累计累加数据结果-1

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

oracle原生语法实现累计累加数据结果-2


posted @ 2021-09-02 11:46  Rkey  阅读(223)  评论(0)    收藏  举报