欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 计算节点上的子节点之和

更新时间: 2014-01-05 02:11:23 责任编辑: Author_N1

 

oracle 计算节点下的子节点之和
假如有表结构:
id pid
1   0
2   1
3   1
4   3
5   1
6   2

我要计算 ID=1 他的子节点就有(2,3,4,5,6)也就是5个子节点 一次类推
ID,节点数量
1,5
2,1
3,1
4,0
5,0
5,0

就是求每个叶子的宽度   求高手指点  小弟没分儿 求大哥们帮助
--参考方法--

with t as (
select '1' id,'0' pid from dual
union all
select '2' id,'1' pid from dual
union all
select '3' id,'1' pid from dual
union all
select '4' id,'3' pid from dual
union all
select '5' id,'1' pid from dual
union all
select '6' id,'2' pid from dual
)
select t.id,
       (select count(1)
          from t tt
         start with tt.pid = t.id
        connect by prior tt.id = tt.pid)
  from t

--参考方法--
为什么有两个5?我觉得2楼是对的。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:23
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6762/
本文WWW.DOC100.NET DOC100.NET版权所有。