我有一个表,它按值引用同一个表中的行
示例表:
ID PARENT_ID NAME
1 0 john
2 1 jane
3 2 smigy
4 2 gujo
5 1 duby
6 1 ruby
7 5 foo
8 2 bar
9 3 baz
10 3 qux
root-parent有父0(只是因为它不会为null),在这种情况下有
我需要创建一个脚本(可能是SQL查询 - 需要避免函数/过程/等),它会根据行在父项下的位置来索引行。 就像我选择所有root-parent's并得到(rownum-1)
一样目标表应如下所示:
ID PARENT_ID NAME ROW_INDEX
1 0 john 0
2 1 jane 0
3 2 smigy 0
4 2 gujo 1
5 1 duby 1
6 1 ruby 2
7 5 foo 0
8 2 bar 2
9 3 baz 0
10 3 qux 1
我正在计划添加此列,因此查询将只执行一次。我通过选择单独的深度行来玩,但后来我真的不知道如何计算内部/组间(即使可能)。
P.S。一个更好/更好的列名称建议也将非常感激。
答案 0 :(得分:2)
用户row_number()
select mt.*, row_number() over(partition by parent_id order by id) - 1 as rn
from MyTable mt