SQL Server 递归找出父子记录,并标统计当前所在层级用户数

select identity(int,1,1)userid,* into #t from( 
select 'name1'LoginName,0 FatherUserID 
union all select 'name2',     1 
union all select 'name3',     1 
union all select 'name4',     2 
union all select 'name5',     2 
union all select 'name6',     4 
union all select 'name7',     4 
)a 
  
;with temp_users as
( 
select UserID,LoginName,FatherUserID,1 as levle from #t where UserID=1 
union all
select  A.UserID,A.LoginName,A.FatherUserID,B.levle+1 from #t A,temp_users B where A.FatherUserID=B.UserID 
) 
select count(userid) as count,[level] from temp_users  group by  [level] 
count level  
1 0
1 3
1 1
5 2
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值