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

SSRS StDev 函数示例
右键单击详细信息行中的任何字段,选择“插入行”,然后选择“组外部—下方”选项以添加新行。接下来,合并前三列并将“标准差值/组”作为文本。为了理解报告,我建议您参考 SSRS 中有关图表、表、分组和格式化表的文章。
编写 SSRS StDev 函数有多种方法。第一种方法是单击单元格并选择“YearlyIncome”字段。它将 Sum 函数分配给它,因为它是默认的聚合函数。因此,选择 Text (Sum(YearlyIncome)),选择“按汇总”,然后单击 StDev 函数。它会在内部写入以下表达式
=StDev(Fields!YearlyIncome.Value)

第二种方法是右键单击“Sales”下方的文本框,然后选择“Expression”选项。这将打开以下表达式窗口,用于编写更复杂的 SSRS StDev 函数以及范围。下面的代码返回总销售额项的标准差。
=StDev(Fields!Sales.Value)

请单击预览选项卡以查看员工年收入和销售额的标准差。如果观察报告,默认情况下,它会显示每个职业组的标准差值,因为这是默认范围。有关更多函数 >> 在此处单击!

SSRS StDev 函数范围示例
为此,我将向“Sales”的右侧添加一列,并将标题命名为“StDev Sale”。接下来,右键单击文本框并选择“Expression”。
下面的 StDev 函数表达式返回的结果与“标准差值/组”行显示的结果相同。但是,您可以获得更多控制,因为我们手动更改了 StDev 函数的范围。
= StDev(Fields!Sales.Value, "Occupation")
下面的表达式将每个职业组的总项的标准差值减去个人员工的销售额。请记住,“Occupation”是组名。接下来,我们使用 0.00;-0.00;'-' 格式化了数字。
=Fields!Sales.Value - StDev(Fields!Sales.Value, "Occupation")

如果检查报告预览,Christy Mehta 的 StDev Sale 为 24.99 (Sale) - 17.532 (Clerical Standard Deviation) = 7.46。
如前所述,要查找整个表或所有员工的标准差,您必须将组名(“Occupation”)替换为表名(“Tablix1”)。让我添加一个位于组外部的额外行,并将其命名为“标准差值/表”。接下来,添加下面的 SSRS StDev 函数表达式以获得年收入和销售额。
=StDev(Fields!YearlyIncome.Value, "Tablix1")
=StDev(Fields!Sales.Value, "Tablix1")
类似地,添加一个新列(Tab_StDev Sale)将整个表的标准差从个人销售值中减去。
=Fields!Sales.Value - StDev(Fields!Sales.Value, "Tablix1")
下面的报告显示了每个组和整个表中总项或记录的标准差。请将 Tablix1 替换为数据集名称,以获得与报告筛选器无关的销售标准差。
从报告预览中,Christy Mehta 的 Tab_StDev Sale:24.99 (Sales) – 1679.6703 (Table Sales Standard Deviation) = -1654.680。
