[英]Oracle SQL index rows based on group by/ parent row
我有1个表,该表按值引用同一表中的行
表格示例:
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
根父母有父母0(只是它不会为空),在这种情况下,
而且我需要创建一个脚本(大概是SQL查询-需要避免函数/过程/等),该脚本将根据行在其父级下的位置来对行进行索引。 就像我要选择所有root-parent并得到(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
我打算添加此列,因此查询将仅执行一次。 我通过选择单独的深度行进行游戏,但是我真的不知道如何在分组内部/分组之间进行计数(即使可能的话)。
PS一个更好/更好的列名建议也将不胜感激。
用户row_number()
select mt.*, row_number() over(partition by parent_id order by id) - 1 as rn
from MyTable mt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.