gpt4 book ai didi

sql - 与分组聚合中的数据集级聚合进行比较

转载 作者:行者123 更新时间:2023-12-05 08:01:45 25 4
gpt4 key购买 nike

背景

我有一个连接表,其中包含我从 SQL Server 2008 R2 获取的事件、客户和区域。查询很简单,我选择了相关字段并过滤掉了不相关的数据。我得到一个 ResolveTime 字段作为 datediff(...) 我有一个矩阵 tablix,它按区域、区域和按事件所有者分组的行组织列中的数据。

这些字段显示平均值、计数和(这是我的问题所在)低于平均值的百分比。在整个数据集的第二个基本表中计算相同的详细信息。如果您感到困惑,请查看表格的屏幕截图。

Table Setup

问题

我对低于平均水平的百分比使用的表达式如下:

=Sum(iif(Fields!ResolveTimeMinutes.Value < avg(fields!ResolveTimeMinutes.Value), 1, 0)) / countrows()

当我在矩阵中使用它时,它工作正常,但工作基于组内的平均值。我已经尝试使用数据集作为总和和平均值的范围,但两者都返回有关嵌套聚合和范围的错误。我无法在聚合内嵌套具有范围的聚合,或在范围聚合内嵌套另一个聚合。

我已经尝试创建一个变量,其中包含我感兴趣的比较值,但我不允许在聚合中引用它。

=Sum(iif(Fields!ResolveTimeMinutes.Value < Variables!avgResolveTime.Value ), 1, 0)) / countrows()

这给我的错误是不能在聚合函数中使用变量值。

我什至尝试过将平均值单独计算为一个单独的数据集,并尝试在比较中引用它,但是关于嵌套聚合和我想做的事情的另一个错误。

如有任何建议,我们将不胜感激。

最佳答案

好吧,今天早上弄明白了。

我创建了一个内部参数,因此它在报告中不可见,并从计算我试图直接从 iff 函数引用的“GlobalAverage”的同一个数据集中检索了默认值。

查询:

SELECT avg(datediff(minute, CreatedDateTime, ResolvedDateTime)) as AverageTTR
from incident
where changeid is null and linkedproblem is null and count_numberoftasks = 0

表达:

=Sum(iif(Fields!ResolveTimeMinutes.Value < Parameters!GlobalAverage.Value, 1, 0)) / countrows()

像魅力一样工作。希望对可能遇到同样问题的其他人有所帮助!

关于sql - 与分组聚合中的数据集级聚合进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com