如何使用 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
我的情况如下。我有一个包含产品层次结构的 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