J'ai une requête hiérarchique dans Oracle 10 SQL qui fonctionnait auparavant. Cependant, j'ai enlevé la vue matérialisée sur laquelle elle était basée, et maintenant je ne peux pas la faire sortir correctement, même en laissant cette vue complètement.Requête hiérarchique dans Oracle - hors de contrôle?
La requête originale ressemblait à ceci:
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
Je présume que cela fonctionne encore, mais sans la vue lastobsmv, je ne peux pas tester.
Si je le couper jusqu'à
select oh.name, oh.description
from ml.obshead oh
join ml.hiergrps hg on oh.groupid = hg.groupid
il fonctionne toujours, le retour 41K records. Cependant, lorsque j'utilise la clause connect by, elle devient incontrôlable et renvoie des millions d'enregistrements (je dois généralement l'annuler avant d'obtenir un compte précis).
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
Suis-je manque quelque chose de vraiment flagrant ici, ou je comprends mal la façon dont cela est censé fonctionner? Merci. .
Vadim,
Il doit retourner une liste des termes d'observation ainsi que le groupe auquel ils sont dans, par exemple,
Obshead:
# CYCLE DAYS, number of days in menstrual cycle, 100
HierGrps:
100, 50, Gynecology
50, 10, Tx
10, 0, Basic
devrait produire
# CYCLE DAYS, number of days in menstrual cycle, :Basic:Tx:Gynecology
(éventuellement avec le nombre de fois que ce terme obs a été utilisé, mais je vais inquiéter à ce sujet plus tard).
Une perspective, s'il vous plaît. Nous aimerions tous aider si nous pouvions seulement comprendre ce que vous vouliez faire. –
Pourriez-vous poster une description de la table obshead et quelques exemples de données ainsi qu'une description de la table hiergrps et un peu plus de données d'échantillon? –
@SarekOfVulcan: Je ne choisis pas Peter Lang ici, mais pourquoi avez-vous accepté sa réponse? Non seulement il produit la colonne 'Group' dans l'ordre inverse, mais il produit également une ligne supplémentaire lorsqu'il est exécuté sur les données d'exemple dans ma solution. –