【问题标题】:Counting a root's children in SQL在 SQL 中计算根的子节点
【发布时间】:2011-11-28 22:43:57
【问题描述】:

假设我有一个包含 3 列的表格:

  1. 项目 ID 'ID'
  2. 父 ID 'ParentID'
  3. 项目名称“标题”

现在,我应该如何计算一个 Root 有多少个孩子?

【问题讨论】:

标签: sql sql-server


【解决方案1】:
SELECT COUNT(*)
FROM T
WHERE ParentID = @ParentID

如果您想要后代而不仅仅是直系子代,则需要递归 CTE。

;WITH R AS
(
SELECT ID
FROM T
WHERE ParentID = @RootID
UNION ALL
SELECT T.ID
FROM T
JOIN R ON R.ID = T.ParentID
)
SELECT COUNT(*)
FROM R

【讨论】:

  • 是的,马丁,这正是我要找的。我需要计算孩子的所有孩子..
  • 从 PostgreSQL 9.5.1 开始,你需要在 WITH 之后写 RECURSIVE。
  • @Rodrigo 这是一个 SQL Server 问题(每个标签)
  • 哦,是的,对不起。但这可能对某人有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
相关资源
最近更新 更多