首页 > 解决方案 > 如何在 Oracle 分层 SQL 中的每个路径中找到最大级别?

问题描述

我想知道在给定路径中查找 Oracle 分层 SQL 中最大级别数的方法。

例如: 如果 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

谢谢,大师

标签: oracleconnect-by

解决方案


推荐阅读