Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

CountDistinct Function (Reporting Services)

Returns a count of all distinct non-null values specified by the expression, evaluated in the context of the given scope.

CountDistinct(expression, scope, recursive)


(Variant) The expression on which to perform the aggregation. The expression cannot contain aggregate functions.


(String) Optional. The name of a dataset, group, or data region that contains the report items to which to apply the aggregate function. If scope is not specified, the current scope is used. For more information, see Using Built-in Report and Aggregate Functions in Expressions (Reporting Services) and Working with Report Expressions.


(Enumerated Type) Optional. Simple (default) or RdlRecursive. Specifies whether to perform the aggregation recursively. For more information, see Creating Recursive Hierarchy Groups (Reporting Services).

Returns an Integer.

The value of scope cannot be an expression and must refer to the current scope or a containing scope.

The following code example shows an expression that calculates the number of unique non-null values of Size for the default scope and for a parent group scope. The expression is added to a cell in a row that belongs to the child group GroupbySubcategory. The parent group is GroupbyCategory. The expression displays the results for GroupbySubcategory (the default scope) and then for GroupbyCategory (the parent group scope).


Expressions should not contain actual carriage returns and line breaks; these are included in the example code to support documentation renderers. If you copy the following example, remove carriage returns from each line.

="Distinct count (Subcategory): " & CountDistinct(Fields!Size.Value) & 
"Distinct count (Category): " & CountDistinct(Fields!Size.Value,"GroupbyCategory")

Community Additions

© 2015 Microsoft