查找最高级父母的孩子

时间:2018-10-18 20:58:57

标签: sql sql-server hierarchy

还有一个类似的问题,询问如何找到孩子的顶级父级(thisthis等)。我有一个类似的问题,但我想找到顶级父母的所有子女。 This是类似的问题,但使用wordpress预定义功能。

样本表:

re.sub(r"(?<=[a-zA-Z])(?=[0-9])", r" ", item)

我想选择ID最高的父级ID等于1的ID。输出应该为3,所有3个孩子的均值是(5,6),如果可以的话,甚至更深层次的孩子。

我知道我可以使用两次内部联接来选择它们,但是级别越高,级别越复杂。

2 个答案:

答案 0 :(得分:0)

由于您没有爬整个梯子...

select *
from YourTable
where parent = (select top 1 parent from YourTable group by parent order by count(parent) desc)

如果您想返回3的父级,因为3列出的频率最高,那么您将使用递归CTE。

答案 1 :(得分:0)

简单的“递归CTE”将满足您的要求:

with n as (
  select id from my_table where id = 1 -- starting row(s)
  union all
  select t.id
    from n
    join my_table t on t.parent_id = n.id
)
select id from n;

该CTE将在所有级别上无限进行。嗯...默认情况下,SQL Server将其限制为128个级别(可以增加到65k)。