SSRS Avg 函数是一个聚合函数,它返回给定字段中所有非空数值的平均值。本文将通过示例介绍如何使用 Avg 函数来查找特定组或整个表的平均值。
SSRS Avg 函数的语法如下所示。要查找具有默认范围的平均值
Avg(Fields!SalesAmount.Value)
要查找每个组、表或数据集的平均值,请将名称替换为组、Tablix 或数据集名称。
Avg(Fields!SalesAmount.Value, "Name") Avg(Fields!SalesAmount.Value, "Name", Recursive)
我们将使用下面的员工表来演示 SSRS Avg 函数。该表有 15 条记录,按职业分组。下图显示了表中报告的记录。

SSRS Avg 函数示例
右键单击“年收入”或“销售额”字段,选择“插入行”选项,然后选择“组外部—下方”选项以添加新行。接下来,合并前三列并将“平均值”作为文本添加。为了更好地理解报告,建议您参考 SSRS 中的“图表”、“表”、“分组”和“格式化表”文章。
编写 SSRS Avg 函数有多种方法。第一种方法是单击单元格并选择“年收入”,它将为该单元格添加 Sum 函数,因为它是默认的聚合函数。然后,选择文本(Sum(YearlyIncome)),选择“按汇总”,然后单击 Avg 函数。它会在内部写入以下表达式
=Avg(Fields!YearlyIncome.Value)

第二种方法是右键单击文本框并选择“表达式”选项。例如,右键单击 Sum(Sales) 并选择“表达式”。
这将打开以下表达式窗口,我们可以在其中编写更复杂的 SSRS Avg 函数以及范围。以下代码将返回销售额的平均值。
=Avg(Fields!Sales.Value)

请点击预览选项卡查看员工的平均年收入和平均销售额。如果您观察报告,默认情况下,它会计算每个职业的平均值,因为这是默认范围。有关更多函数,请单击此处!

SSRS Avg 函数范围演示
为此,我将在“销售额”的右侧添加一个新列,并将标题命名为“平均销售额”。接下来,右键单击文本框并选择“表达式”。
下面的表达式返回的结果与“平均值”行所示的结果相同,即每个组的平均值。但是,由于我们手动更改了 Avg 函数的范围,因此您可以更精确地控制平均值计算。
=Avg(Fields!Sales.Value, "Occupation")
下面的 SSRS Avg 函数将每个职业组的平均销售额从单个员工的销售额中减去。请记住,“职业”是组名。
=Fields!Sales.Value - Avg(Fields!Sales.Value, "Occupation")

如前所述,要查找整个表或所有员工的平均值,您必须将组名(“职业”)替换为表名(“Tablix1”)。我将添加一个位于组外部的额外行,以便为年收入和销售额添加以下两个 Avg 函数表达式。
=Avg(Fields!YearlyIncome.Value, "Tablix1")
=Avg(Fields!Sales.Value,"Tablix1")
下面的报告显示了所有组的平均值。请将 Tablix1 替换为数据集名称,以获取销售额的平均值,而忽略应用于报告的任何过滤器。如果您查看报告预览,Christy Mehta 的平均销售额为 24.99(销售额)- 33.2525(文员平均值)= -8.26。
