如下:

SQL> with t as

2  ( select 100 userid, 0 parentid, 90 amount from dual

3    union all

4    select 110, 100, 80 from dual

5    union all

6    select 120, 110, 70 from dual

7    union all

8    select 130, 120, 60 from dual

9    union all

10    select 200, 0, 50 from dual

11    union all

12    select 210, 200, 40 from dual

13    union all

14    select 220, 210, 30 from dual

15  )

16  select  userid,

17          sum(amount) amount

18  from

19  (select CONNECT_BY_ROOT(userid) userid,

20          amount

21    from t

22  where level <> 1

23    connect by prior userid = parentid)

24  group by userid

25  order by 1;

USERID     AMOUNT

---------- ----------

100        210

110        130

120         60

200         70

210         30

SQL>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐