Функция CountDistinct (построитель отчетов и службы SSRS)
Возвращает количество уникальных значений, отличных от NULL, определяемое выражением, вычисляемым в контексте данной области.
Примечание
Создавать и изменять определения отчетов (RDL-файлы) в SQL Server Data Tools можно в построителе отчетов и конструкторе отчетов В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в статье Проектирование отчетов в конструктор отчетов и Report Builder (SSRS) в Интернете по адресу microsoft.com.
Синтаксис
CountDistinct(expression, scope, recursive)
Параметры
expression
(Variant
) Выражение для выполнения статистической обработки.
область
(String
) Необязательно. Имя набора данных, группы или области данных, содержащих элементы отчета, к которым применяется агрегатная функция. Если аргумент scope не задан, используется текущая область.
рекурсивные
(Перечислимый тип) Необязательно. Simple
(по умолчанию) или RdlRecursive
. Указывает, нужно ли выполнять статистическую обработку рекурсивно.
Тип возвращаемых данных
Возвращает значение типа Integer
.
Remarks
Значение scope должно быть строковой константой и не может быть выражением. Для внешних агрегатов и агрегатов, в которых не задаются другие агрегаты, параметр scope должен ссылаться не текущую область или включающую область. Для агрегатов, содержащих агрегаты, во вложенных агрегатах может указываться дочерняя область.
Expression может содержать вызовы вложенных агрегатных функций со следующими условиями и исключениями.
ПараметрScope для вложенных агрегатов должен совпадать с областью внешнего агрегата или входить в нее. Одна область из всех уникальных областей в выражении должна быть дочерней относительно всех других областей.
ПараметрScope для вложенных агрегатов не может быть именем набора данных.
Выражение не должно содержать
First
функции ,Last
,Previous
, илиRunningValue
.Expression не может содержать вложенные агрегаты, в которых указан параметр recursive.
Дополнительные сведения см. в статьях Функции построителя отчетов — справочник по агрегатным функциям в отчетах с разбивкой на страницы (построитель отчетов) и Область выражения для суммирования, статистических выражений и встроенных коллекций в отчете с разбивкой на страницы (построитель отчетов).
Дополнительные сведения о рекурсивных агрегатах см. в разделе Создание групп рекурсивной иерархии (построитель отчетов и службы SSRS).
Пример
В приведенном ниже примере кода показано выражение, вычисляющее количество уникальных значений Size
, отличных от NULL, для области по умолчанию и области родительской группы. Выражение добавляется в ячейку строки, относящуюся к дочерней группе GroupbySubcategory
. Родительской группой является GroupbyCategory
. Выражение отображает результаты для группы GroupbySubcategory
(область по умолчанию) и затем для группы GroupbyCategory
(область родительской группы).
Примечание
Выражения не должны содержать действительные возвраты каретки и разрывы строк; они включаются в пример кода для поддержки модулей подготовки отчетов. При копировании следующего примера удалите возвраты каретки изо всех строк.
="Distinct count (Subcategory): " & CountDistinct(Fields!Size.Value) &
"Distinct count (Category): " & CountDistinct(Fields!Size.Value,"GroupbyCategory")
См. также:
Использование выражений в отчетах (построитель отчетов и службы SSRS)
Примеры выражений (построитель отчетов и службы SSRS)
Типы данных в выражениях (построитель отчетов и службы SSRS)
Область выражения для итогов, агрегатных функций и встроенных коллекций (построитель отчетов и службы SSRS)