oracle实现分层查询,Oracle中的分层查询-失控?

我在Oracle10SQL中有一个分层查询,它曾经工作过。但是,我删除了它所基于的物化视图,现在我无法使它正确地显示出来,甚至完全不显示该视图。

原始查询如下所示:

select oh.name, oh.description

, sys_connect_by_path(groupname, ':') "Groups"

, (select count(*)

from ml.lastobsmv

where lastobsmv.hdid = oh.hdid) as obscount

from ml.obshead oh

join ml.hiergrps hg on oh.groupid = hg.groupid

connect by prior hg.groupid = hg.parentid

我认为它仍然有效,但是如果没有LastObsmv视图,我就无法测试它。

如果我把它减到

select oh.name, oh.description

from ml.obshead oh

join ml.hiergrps hg on oh.groupid = hg.groupid

它仍然有效,返回41k条记录。但是,当我使用connect by子句时,它失去了控制,返回了数百万条记录(我通常必须在获得准确计数之前取消它)。

select oh.name, oh.description

, sys_connect_by_path(groupname, ':') "Groups"

from ml.obshead oh

join ml.hiergrps hg on oh.groupid = hg.groupid

connect by prior hg.groupid = hg.parentid

我是不是错过了一些明目张胆的东西,还是我误解了这项工作的方式?谢谢。

瓦迪姆,

它应该返回观察术语列表以及他们所在的组。例如,

组织结构:

# CYCLE DAYS, number of days in menstrual cycle, 100

HierGrps:

100, 50, Gynecology

50, 10, Tx

10, 0, Basic

应该生产

# CYCLE DAYS, number of days in menstrual cycle, :Basic:Tx:Gynecology

(最终,加上这个OBS术语的使用次数,但我稍后会担心)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值