我有这样一个表,数据是一棵树,但是树中有相同的节点(相当于公用节点):地区 人数 隶属于 序号中国 3 null 1
北京 4 中国 2
四川 3 中国 3
昌平 7 北京 4
顺义 12 北京 5
绵阳 20 四川 6
成都 11 四川 7
成都 11 北京 8
郫县 7 成都 9
郫县 7 成都 10
大家可以看到这里边有重复数据,原因是。成都即属于四川,又属于北京。这样成都有两条记录。同理,成都下属的所有节点都会原封不动的复制了一份。就这样的一个数据库(原始数据,我们无法更改的),我们要统计它。关键是计算成都人口的时候不能将两个郫县的都包含了。只能取其中一个来算。请问用
connect by prior id=pid start with id=??
能解决吗?如果解决不了?该如何解决呢?高手指点下面是想生成的结果样式。想得出这样的结果:地区 总人数
中国 85
北京 41
四川 41
昌平 7
顺义 12
绵阳 20
成都 18
成都 18
郫县 7
郫县 7
北京 4 中国 2
四川 3 中国 3
昌平 7 北京 4
顺义 12 北京 5
绵阳 20 四川 6
成都 11 四川 7
成都 11 北京 8
郫县 7 成都 9
郫县 7 成都 10
大家可以看到这里边有重复数据,原因是。成都即属于四川,又属于北京。这样成都有两条记录。同理,成都下属的所有节点都会原封不动的复制了一份。就这样的一个数据库(原始数据,我们无法更改的),我们要统计它。关键是计算成都人口的时候不能将两个郫县的都包含了。只能取其中一个来算。请问用
connect by prior id=pid start with id=??
能解决吗?如果解决不了?该如何解决呢?高手指点下面是想生成的结果样式。想得出这样的结果:地区 总人数
中国 85
北京 41
四川 41
昌平 7
顺义 12
绵阳 20
成都 18
成都 18
郫县 7
郫县 7
解决方案 »
- 通过链路向另一数据导数据
- 求Oracle的8795792补丁的下载地址
- Qt连接 Oracle数据库需要哪些必备条件?
- 关于CTL文件里的日志文件
- 关于create table as 的问题,如何加一个integer型的字段
- 怎样获得某个方案下某个用户的所有表?并非一碰到问题就来问的,而是上午试验了很多次都得不到想要的结果,特来请教。
- 分区时LESS是小于,等于怎么表示
- LINUX sqlplus怎么不能访问WINDOWS 2000 SERVER ORACLE服务器?
- 在触发器中如何判断某一次update只改变了某一个字段
- 关于group by的用法请教
- 关于.net中oracle数据库连接关闭后会话还未结束
- 请教各位高手一条SQL的效率问题
(select sum(num)
from (select t.*,row_number() over(partition by region,partof order by partof) rn from b t) t2
where rn = 1
start with t1.region = t2.region
and nvl(t1.partof,0) = nvl(t2.partof,0)
connect by prior region = partof)
from b t1SQL>
9 /REGION (SELECTSUM(NUM)FROM(SELECTT.*,
---------- ------------------------------
中国 85
北京 41
四川 41
昌平 7
顺义 12
绵阳 20
成都 18
成都 18
郫县 7
郫县 710 rows selected