2014-02-14 4 views
0

Кто-нибудь знает способ узнать глубину CONNECT BY? Например, если бы у меня было;START WITH .... CONNECT BY PRIOR

PARENT_ID PARENT_KEY CHILD_ID CHILD_KEY 
1   BOB   2   CHRIS 
1   BOB   3   TODD 
2   CHRIS  4   JON 
2   CHRIS  5   ALF 
5   ALF   6   GERARD 
5   ALF   7   MIKE 
3   TODD  8   ANN 
3   TODD  9   FRED 

Глубина CHRIS составляет 3, а глубина ТОДДА составляет 2, Как бы я узнать глубину CHRIS и Тодд, где программно;

START WITH PARENT_KEY = 'Bob' CONNECT BY ПРИОР CHILD_ID = PARENT_ID

К сожалению, я был глуп ... вот ответ для тех, у кого есть промахи мозга в будущем;

SELECT 
PARENT_KEY 
, MAX(LEVEL) AS DEPTH 
FROM TIMELINE_CONFIG 
START WITH PARENT_KEY = 'BOB' CONNECT BY PRIOR CHILD_ID = PARENT_ID 
GROUP BY PARENT_KEY 

ответ

4

Вы можете использовать уровень псевдо-колонки:

SELECT ..., LEVEL, ... 
FROM ... 
+0

спасибо, я исправил свою проблему ~;) – Vito

0

К сожалению, я был глуп ... вот ответ для тех, у кого есть промахи мозга в будущем;

SELECT 
PARENT_KEY 
, MAX(LEVEL) AS DEPTH 
FROM TIMELINE_CONFIG 
START WITH PARENT_KEY = 'BOB' CONNECT BY PRIOR CHILD_ID = PARENT_ID 
GROUP BY PARENT_KEY 

 Смежные вопросы

  • Нет связанных вопросов^_^