首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用parentId查找子代计数

如何使用parentId查找子代计数
EN

Stack Overflow用户
提问于 2019-02-04 15:51:59
回答 2查看 635关注 0票数 1

如何找到每一行的孩子数量?

例如:

代码语言:javascript
复制
   1 ROW COUNT=1
   2 ROW COUNT=0 
   ...

诸若此类。在下一列中

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-04 17:23:33

您可以使用递归CTE来完成此操作,但应使用简单连接来完成此操作。首先,找出每个节点的计数,不包括没有父节点的节点:

代码语言:javascript
复制
SELECT [ParentID] 
      ,COUNT(*)
FROM MyTable 
WHERE [ParentID] <> 0
GROUP BY [ParentID];

如果这样可以,只需连接到初始表:

代码语言:javascript
复制
SELECT *
FROM MyTable T1
LEFT JOIN
(
    SELECT [ParentID] 
          ,COUNT(*) AS [all_childs]
    FROM MyTable 
    WHERE [ParentID] <> 0
    GROUP BY [ParentID]
) T2
    oN T1.[parentID] = T2.[ParentID];
票数 1
EN

Stack Overflow用户

发布于 2019-02-04 17:55:56

这应该没问题,当ROW COUNT=0的时候你需要isnull()函数

代码语言:javascript
复制
 SELECT 
        PA.ID, 
        PA.Title_Name, 
        ISNULL(P.COUNTT,0) CountOfID 
 FROM #My_Table PA
 LEFT JOIN (
             SELECT COUNT(*) COUNTT, Parent_ID from #My_Table GROUP BY Parent_ID
             ) as P on P.Parent_ID = PA.ID
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54511994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档