如何使用 sql 定义层次结构中的级别数?

How to define the number of levels in a hierarchy using sql?

我的情况如下。我有一个包含产品层次结构的 table。以下 table 是数据集的摘录:

child    parent
  1        2
  2        3
  4        5
  6        7

我想添加一个包含层次结构深度(子级)的列。内容如下:

child    parent   depth
  1        2        2
  2        3        1
  4        5        1
  6        7        1

我将如何在 Oracle 中执行此操作?谢谢!

类似于:

SELECT child, parent, level
FROM   your_table
START WITH parent NOT IN ( SELECT child FROM your_table )
CONNECT BY parent = PRIOR child;

输出:

CHILD PARENT LEVEL
----- ------ -----
    1      2     2
    2      3     1
    4      5     1
    6      7     1