Как найти максимальный уровень в каждом пути в иерархическом SQL Oracle? - PullRequest
0 голосов
/ 12 января 2019

Я хотел бы знать, как найти максимальный номер уровня в иерархическом SQL Oracle по заданному пути.

Например: если предложение connect by начинается с корня 1, имеющего отношение ниже.

parent_id node_id votes
 NULL    1        -
 1       2        10 
 2       3        12 
 3       4        11
 1       20        5
 20      30       20
 20      40        4
 40      50       22

Здесь первые 3 записи принадлежат одному пути с максимальным уровнем 3. Следующие 2 записи принадлежат другому пути с максимальным уровнем 2. Последние две записи принадлежат другому пути с максимальным уровнем 3.

Мне нужен вывод с этими максимальными уровнями в пределах заданного пути и минимальных голосов:

parent_id  node_id LEVEL  MAX_LEVL  MIN_VOTE
   1       2         1        3        10
   2       3         2        3        10
   3       4         3        3        10
   1       20        1        2         5
   20      30        2        2         5
   1       20        1        3         4
   20      40        2        3         4 
   40      50        3        3         4 



     1
     |
--------------
|           |
2           20              
|           |
3     --------------
|     |             |
4     30            40
                    |
                   50

Спасибо, Гуру

...