Функции построителя отчетов — функция CountDistinct в отчете с разбивкой на страницы (построитель отчетов)

Применяется к: Microsoft Report Builder (SSRS) Power BI Report Builder Конструктор отчетов в SQL Server Data Tools

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

Примечание.

Файлы определения страничных отчетов (.rdl) можно создавать и изменять в Microsoft Report Builder, Power BI Report Builder и в конструктор отчетов в SQL Server Data Tools.

Синтаксис

  
CountDistinct(expression, scope, recursive)  

Параметры

выражение
(Variant) Выражение, над которым выполняется агрегирование.

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

рекурсивные
(Перечисляемый тип) Необязательно. 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")