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


Справочник по агрегатным функциям (построитель отчетов и службы SSRS)

Чтобы включить в отчет статистические значения, в выражениях можно использовать агрегатные функции. Агрегатная функция по умолчанию для числовых полей — функция SUM. Можно изменить выражение и использовать другую встроенную агрегатную функцию или указать другую область. Область определяет набор данных, используемый при вычислениях.

Поскольку в обработчике отчетов объединены данные и макет отчета, то выражения для всех элементов отчета вычисляются. При просмотре всех страниц отчета в элементах отчета, подготовленных к просмотру, отображаются результаты для всех выражений.

В следующей таблице перечислены категории встроенных функций, которые можно включать в выражение.

  • Встроенные агрегатные функции

  • Ограничения встроенных полей, коллекций и агрегатных функций

  • Ограничения вложенных агрегатов

  • Вычисление текущих значений

  • Получение числа строк

  • Уточняющий запрос значений из другого набора данных

  • Получение основанных на сортировке значений

  • Получение серверных агрегатов

  • Получение уровня рекурсии

  • Тестирование области

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

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

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

Встроенные агрегатные функции

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

Функция

Описание

Avg

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

Count

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

CountDistinct

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

Max

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

Min

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

StDev

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

StDevP

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

Sum

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

Union

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

Var

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

VarP

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

Значок стрелки, используемый со ссылкой «В начало»В начало

Ограничения встроенных полей, коллекций и агрегатных функций

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

Местоположение в отчете

Поля

Параметры

ReportItems

PageNumber

TotalPages

DataSource

DataSet

Переменные

RenderFormat

Заголовок страницы

Нижний колонтитул страницы

Да

Да

Максимум одно

Примечание 1

Да

Да

Да

Да

Текст

Да

Примечание 2

Да

Только элементы в текущей или включающей области

Примечание 3

Нет

Да

Да

Да

Параметр отчета

Нет

Только ранее упомянутые в списке параметры

Примечание 4

Нет

Нет

Нет

Нет

Нет

Поле

Да

Да

Нет

Нет

Нет

Нет

Нет

Параметр запроса

Нет

Да

Нет

Нет

Нет

Нет

Нет

Выражение группы

Да

Да

Нет

Нет

Да

Нет

Нет

Выражение сортировки

Да

Да

Нет

Нет

Да

Да

Примечание 5

Нет

Критерий фильтра

Да

Да

Нет

Нет

Да

Да

Примечание 6

Нет

Код

Нет

Да

Примечание 7

Нет

Нет

Нет

Нет

Нет

Report.Language

Нет

Да

Нет

Нет

Нет

Нет

Нет

Переменные

Да

Да

Нет

Нет

Да

Текущая или включающая область

Нет

Статистические вычисления

Да

Да

Только в верхнем или нижнем колонтитуле страницы

Только в агрегатных функциях элементов отчета

Да

Нет

Нет

Функции поиска

Да

Да

Да

Нет

Да

Нет

Нет

  • Примечание 1. Элемент ReportItems должен существовать на странице отчета, подготовленной к просмотру, или их значение равно NULL. Если видимость элемента отчета зависит от выражения, принимающего значение False, то этот элемент отчета не существует на странице.

  • Примечание 2. Если ссылка на поле используется в области группы и ссылка на поле не включена в выражение группы, то значение для поля считается неопределенным, за исключением случаев, когда в области имеется только одно значение. Чтобы указать значение используйте методы First и Last и область группы.

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

  • Примечание 4. Значения свойств для предыдущих параметров могут быть равны NULL.

  • Примечание 5. Только при сортировке элементов. Нельзя использовать в выражениях сортировки области данных.

  • Примечание 6. Только для фильтров элементов. Нельзя использовать в выражениях сортировки области данных или критериев фильтра наборов данных.

  • Примечание 7. Коллекция параметров не инициализируется до обработки блока кода, поэтому методы не могут быть использованы для управления параметрами при инициализации.

  • Примечание 8. Все агрегатные функции, за исключением Count и CountDistinct, должны иметь один тип данных, или все значения должны быть равны NULL.

Значок стрелки, используемый со ссылкой «В начало»В начало

Ограничения вложенных агрегатов

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

Контекст

Текущее значение

RowNumber

First

Последняя дата

Previous

Sum и другие функции предварительной сортировки

Агрегаты ReportItem

Функции поиска

Агрегатная функция

Текущее значение

Нет

Нет

Нет

Нет

Да

Нет

Да

Нет

Первая

Последняя дата

Нет

Нет

Нет

Нет

Да

Нет

Нет

Нет

Previous

Да

Да

Да

Нет

Да

Нет

Да

Нет

Sum и другие функции предварительной сортировки

Нет

Нет

Нет

Нет

Да

Нет

Да

Нет

Агрегаты ReportItem

Нет

Нет

Нет

Нет

Нет

Нет

Нет

Нет

Функции поиска

Да

Да

Примечание 1

Да

Примечание 1

Да

Примечание 1

Да

Примечание 1

Да

Примечание 1

Нет

Нет

Агрегатная функция

Нет

Нет

Нет

Нет

Нет

Нет

Нет

Нет

  • Примечание 1. Использование агрегатных функций разрешено только внутри выражения Source функции поиска, если функция поиска не содержится в агрегате. Использование агрегатных функций не разрешено внутри выражений Destination или Result функции поиска.

Значок стрелки, используемый со ссылкой «В начало»В начало

Вычисление текущих значений

Следующие встроенные функции вычисляют текущие значения для набора данных. Функция RowNumber подобна функции RunningValue тем, что возвращает текущее значение счетчика, которое увеличивается для каждой строки внутри содержащей области. В этих функциях параметр области должен задавать вмещающую область, которая управляет обнулением счетчика.

Функция

Описание

RowNumber

Возвращает текущее количество строк в указанной области. Функция RowNumber начинает счет с 1, а не с 0.

RunningValue

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

Значок стрелки, используемый со ссылкой «В начало»В начало

Получение числа строк

Следующая встроенная функция вычисляет количество строк в данной области. Используйте эту функцию для подсчета всех строк, включая строки, содержащие значение NULL.

Функция

Описание

CountRows

Возвращает число строк в указанной области, включая строки со значениями NULL.

Значок стрелки, используемый со ссылкой «В начало»В начало

Уточняющий запрос значений из другого набора данных

Следующие функции поиска извлекают значения из указанного набора данных.

Функция

Описание

Функция Lookup

Возвращает значение определенного выражения из набора данных.

Функция LookupSet

Возвращает набор значений указанного выражения из набора данных.

Функция Multilookup

Возвращает первые подходящие значения для набора имен из набора данных, содержащего пары «имя-значение».

Значок стрелки, используемый со ссылкой «В начало»В начало

Получение основанных на сортировке значений

Следующие встроенные функции возвращают первое, последнее или предыдущее значения внутри заданной области. Эти функции зависят от порядка сортировки значений данных. С помощью этих функций можно, например, найти последнее и первое значения на странице, чтобы создать заголовок в стиле словаря. Используйте функцию Previous, чтобы сравнить значение в одной строке со значением в предыдущей строке конкретной области, например чтобы найти значение годового процента в таблице.

Функция

Описание

First

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

Last

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

Previous

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

Значок стрелки, используемый со ссылкой «В начало»В начало

Получение серверных агрегатов

Следующая встроенная функция получает пользовательские агрегаты из поставщика данных. Например, при использовании источника данных типа служб Analysis Services можно получить агрегаты, вычисляемые на сервере источника данных и используемые в заголовке группы.

Функция

Описание

Aggregate

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

Значок стрелки, используемый со ссылкой «В начало»В начало

Тестирование области

Следующая встроенная функция тестирует текущий контекст элемента отчета, чтобы увидеть, является ли он элементом определенной области.

Функция

Описание

InScope

Указывает, входит ли текущий экземпляр элемента в пределы указанной области действия.

Значок стрелки, используемый со ссылкой «В начало»В начало

Получение уровня рекурсии

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

Функция

Описание

Уровень

Возвращает текущий уровень глубины в рекурсивной иерархии.

Значок стрелки, используемый со ссылкой «В начало»В начало

См. также

Справочник

Примеры выражений (построитель отчетов и службы SSRS)

Основные понятия

Использование выражений в отчетах (построитель отчетов и службы SSRS)

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