首页 > Oracle > 又一个connect_by_root适用案例!
2015
08-12

又一个connect_by_root适用案例!

有的需求实现起来并不复杂,关键是要结合所掌握的知识,把需求和知识融在一起,能想到好的思路才是王道。

先看一点测试数据:

测试数据很简单,shangji表示的就是上级用户,xiaji表示当前用户的下级,qishu表示当前是多少期,price表示绩效。

需要实现的结果如下:

从需要实现的结果来看,1这个用户,期数为201503的时候,在源数据当中并没有对应的数据,但因为4是1的下级,所以4这个用户在201503这一期的绩效也是1用户在201503这一期的绩效。也就是说,当期A用户的绩效等于当期所有A用户下级绩效的总和加上A用户本身的绩效。肯定需要用到的是oracle的递归查询,直接看写法:

首先通过递归查询,查询当前上级用户,期数和绩效,然后在外层直接sum聚合就ok。这里只是一个简单的查询例子,oracle的递归查询可以结合很多函数一起使用达到意想不到的效果。

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL