CountDistinct 函数(报表生成器和 SSRS)
返回在给定作用域上下文中计算的、由表达式指定的所有非重复的非 Null 值计数。
注意 |
---|
在 SQL Server Data Tools 中,您可以在报表生成器和报表设计器中创建和修改报表定义 (.rdl)。每个创作环境提供了不同的方式来创建、打开和保存报表和相关项。有关详细信息,请参阅 Web 上 microsoft.com 中的“在报表设计器和报表生成器中设计报表 (SSRS)”。 |
语法
CountDistinct(expression, scope, recursive)
参数
expression
(Variant) 要对其执行聚合的表达式。scope
(String) 可选。 包含要对其应用聚合函数的报表项的数据集、组或数据区域的名称。 如果未指定 scope,则使用当前作用域。recursive
(Enumerated Type) 可选。 Simple(默认值)或 RdlRecursive。 指定是否以递归方式执行聚合。
返回类型
返回 Integer。
注释
scope 的值必须是字符串常量,不能是表达式。 对于外部聚合或未指定其他聚合的聚合,scope 必须引用当前作用域或包含作用域。 对于聚合的聚合,嵌套聚合可以指定子作用域。
Expression 可以包含对嵌套聚合函数的调用,但具有以下例外和条件:
嵌套聚合的 Scope 必须与外部聚合的作用域相同,或者包含在外部聚合的作用域中。 对于表达式中的所有非重复作用域,一个作用域必须相对所有其他作用域处于子关系中。
嵌套聚合的 Scope 不能为数据集的名称。
Expression 不得包含 First、Last、Previous 或 RunningValue 函数。
Expression 不得包含用于指定 recursive 的嵌套聚合。
有关详细信息,请参阅聚合函数引用(报表生成器和 SSRS) 和总计、聚合和内置集合的表达式作用域(报表生成器和 SSRS)。
有关递归聚合的详细信息,请参阅创建递归层次结构组(报表生成器和 SSRS)。
示例
下面的代码示例显示一个表达式,该表达式为默认作用域和父组作用域计算 Size 的唯一非 Null 值数。 该表达式将添加至属于子组 GroupbySubcategory 的行的某个单元格中。 父组是 GroupbyCategory。 该表达式显示 GroupbySubcategory(默认作用域)和 GroupbyCategory(父组作用域)的结果。
注意 |
---|
表达式中不应包含实际的回车符和换行符;这些回车符和换行符包含在示例代码中是为了支持文档呈现器。 如果您要复制以下示例,请删除每一行中的回车符。 |
="Distinct count (Subcategory): " & CountDistinct(Fields!Size.Value) &
"Distinct count (Category): " & CountDistinct(Fields!Size.Value,"GroupbyCategory")