Поделиться через


Функция CountDistinct (построитель отчетов версии 3.0 и службы SSRS)

Возвращает количество уникальных значений, отличных от NULL, определяемое выражением, вычисляемым в контексте данной области.

ПримечаниеПримечание

В построителе отчетов и в конструкторе отчетов среды Business Intelligence Development Studio можно создавать и изменять определения отчета (RDL). В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в разделе Разработка отчетов в построителе отчетов и конструкторе отчетов 3.0 (SSRS) на веб-сайте microsoft.com.

Синтаксис

CountDistinct(expression, scope, recursive)

Параметры

  • expression
    (Variant) Выражение для выполнения статистической обработки.

  • scope
    (String) Необязательный. Имя набора данных, группы или области данных, содержащих элементы отчета, к которым применяется агрегатная функция. Если аргумент scope не задан, используется текущая область.

  • recursive
    (Перечислимый тип) Необязательный. Simple (по умолчанию) или RdlRecursive. Указывает, нужно ли выполнять статистическую обработку рекурсивно.

Тип возвращаемых данных

Возвращает значение типа Integer.

Замечания

Значение scope должно быть строковой константой и не может быть выражением. Для внешних агрегатов и агрегатов, в которых не задаются другие агрегаты, параметр scope должен ссылаться не текущую область или включающую область. Для агрегатов, содержащих агрегаты, во вложенных агрегатах может указываться дочерняя область.

Expression может содержать вызовы вложенных агрегатных функций со следующими условиями и исключениями.

  • Параметр Scope для вложенных агрегатов должен совпадать с областью внешнего агрегата или входить в нее. Одна область из всех уникальных областей в выражении должна быть дочерней относительно всех других областей.

  • Параметр Scope для вложенных агрегатов не может быть именем набора данных.

  • Expression не может содержать функции First, Last, Previous и RunningValue.

  • Expression не может содержать вложенные агрегаты, в которых указан параметр recursive.

Дополнительные сведения см. в разделах Справочник по агрегатным функциям (построитель отчетов версии 3.0 и службы SSRS) и Общие сведения об области выражений для суммирования, агрегатных функций и встроенных коллекций (построитель отчетов версии 3.0 и службы SSRS).

Дополнительные сведения о рекурсивных агрегатах см. в разделе Создание групп рекурсивной иерархии (построитель отчетов версии 3.0 и службы SSRS).

Пример

В приведенном ниже примере кода показано выражение, вычисляющее количество уникальных значений Size, отличных от NULL, для области по умолчанию и области родительской группы. Выражение добавляется в ячейку строки, относящуюся к дочерней группе GroupbySubcategory. Родительской группой является GroupbyCategory. Выражение отображает результаты для группы GroupbySubcategory (область по умолчанию) и затем для группы GroupbyCategory (область родительской группы).

ПримечаниеПримечание

Выражения не должны содержать действительные возвраты каретки и разрывы строк; они включаются в пример кода для поддержки модулей подготовки отчетов. При копировании следующего примера удалите возвраты каретки изо всех строк.

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