sqlserver递归查询平均数怎么查

with cte_Assess(id,pid,code,target,score)
as

(

--起始条件

select id,pid,code,target,score
from Assess

where id = 937 --列出子节点查询条件

union all  

--递归条件  
select a.id,a.pid,a.code,a.target,a.score
from Assess a  
inner join   
cte_Assess b          --执行递归
on a.pid=b.id 

)

select * from cte_Assess t;


```我想要的只是拿score的平均数,其他可拿可不
sql

4个回答

--获取某层下的所有信息--
with cte_Assess(id,pid,code,target,score)
as
(
--起始条件
select id,pid,code,target,score
from Assess
where id = 937 --列出子节点查询条件
union all  
--递归条件  
select a.id,a.pid,a.code,a.target,a.score
from Assess a  
inner join   
cte_Assess b          --执行递归
on a.pid=b.id 
)
--求出平均分--
select avg(score) from cte_Assess
qkj666
qkj666 感谢老哥
8 个月之前 回复
qkj666
qkj666 哦哦,可以的,看错了
8 个月之前 回复
qkj666
qkj666 回复人到中年就秃头: 不行啊,一样的,临时表和原表概念一样的
8 个月之前 回复
qq_41906761
人到中年就秃头 回复qkj666: 我改了,应该是只改最后一行求出平均分就行
8 个月之前 回复
qkj666
qkj666 如果只写一个avg的话,语法会报错的
8 个月之前 回复
qkj666
qkj666 因为我数据库里面是有五层父子关系的,我要查询某一层所有的子层的平均分数,所以需要递归查询平均分
8 个月之前 回复
qkj666
qkj666 只查询score的平均数的话,递归查询条件有需要id,但加id的话,avg语法有报错
8 个月之前 回复
qkj666
qkj666 大佬,重点是取平均数啊
8 个月之前 回复

with temp ( [Id], [parentid])
as
(
select Id, parentid
from DiGui
where [parentid] = 15
union all
select a.Id, a.parentid
from DiGui a
inner join temp on a.[parentid] = temp.[Id]
)
select * from temp

select convert(varchar,time,23),datepart(hh,time),avg(valueavg),max(valueavg)
from tb group by convert(varchar,time,23),datepart(hh,time)
韩国留学家长陪读需要提供哪些资料www.fenbiedu.cn/index/answer/detail/id/31.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!