
如何找到每一行的孩子数量?
例如:
1 ROW COUNT=1
2 ROW COUNT=0
...诸若此类。在下一列中
发布于 2019-02-04 17:23:33
您可以使用递归CTE来完成此操作,但应使用简单连接来完成此操作。首先,找出每个节点的计数,不包括没有父节点的节点:
SELECT [ParentID]
,COUNT(*)
FROM MyTable
WHERE [ParentID] <> 0
GROUP BY [ParentID];如果这样可以,只需连接到初始表:
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];发布于 2019-02-04 17:55:56
这应该没问题,当ROW COUNT=0的时候你需要isnull()函数
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.IDhttps://stackoverflow.com/questions/54511994
复制相似问题