首页 新闻 会员 周边

sql server 怎么可以让查询的字段不分组,只显示原本的数据

0
悬赏园豆:80 [已解决问题] 解决于 2023-08-17 14:01

WITH sourceData AS
(
SELECT appName, tableName, TableDataNum,WarnningFlag,DBLevel,ShareFolderFileNum, ROW_NUMBER() over(partition by appName, tableName order by insertTime desc) as num from dataCheckLog
where insertTime >= DATEADD(month,-2,GETDATE()) and WarnningFlag =0
)
select appName, tableName,ShareFolderFileNum,
ISNULL(sum(TableDataNum) / count(*),NULL) as avgLast30d into #avgLast30day from sourceData t1
where num <= 30
group by appName, tableName,ShareFolderFileNum
怎么让ShareFolderFileNum这个字段从group by中去掉显示原本的数据
或者有没有什么聚合函数可以做到
感谢

酒叟的主页 酒叟 | 初学一级 | 园豆:46
提问于:2023-08-17 10:37

是要在结果中去掉ShareFolderFileNum这一列吗

长别 11个月前

@长别: 不是,是在结果中把ShareFolderFileNum个值不分组显示出来

酒叟 11个月前
< >
分享
最佳答案
0

你都group by了,后面跟的是sum之类的方法,肯定没有办法显示
你要不再嵌套一层select

收获园豆:80
人间春风意 | 老鸟四级 |园豆:2578 | 2023-08-17 11:36

再嵌套一层with吗

酒叟 | 园豆:46 (初学一级) | 2023-08-17 13:10

套一层with然后查出来两个结果关联上再加个时间戳把数据对应上是这个意思吗

酒叟 | 园豆:46 (初学一级) | 2023-08-17 13:17

@酒叟: 是的,就是把你分组后得到的数据,作为查询条件,再把你需要的列都列出来

人间春风意 | 园豆:2578 (老鸟四级) | 2023-08-21 13:09
其他回答(1)
0

FileFlag= case when t1.TableDataNum<>t2.ShareFolderFileNum
then 1
else 0
end,
--FileFlag=t1.FileFlag,
DBLevel=t1.DBLevel
from #queryTemp t1
inner join dbo.dataCheckLog t2
on t1.appName = t2.appName
and convert(varchar(8), t2.InsertTime, 112) = convert(varchar(8), getdate(), 112)
and t1.tableName=t2.tablename
where t2.appname is not null
在那一段代码搞有点麻烦了,还是在下面改一下关联得了,感谢两位大佬帮我

酒叟 | 园豆:46 (初学一级) | 2023-08-17 13:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册