Aggregate (MDX)

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

Syntax

  
Aggregate(Set_Expression [ ,Numeric_Expression ])  

Arguments

Set_Expression
Допустимое выражение многомерных выражений (MDX), которое возвращает множество.

Numeric_Expression
Допустимое числовое выражение, которое обычно является многомерным выражением (MDX) координат ячеек, возвращающих число.

Remarks

Если задаётся множество пустых кортежей или пустое множество, эта функция возвращает пустое значение.

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

Оператор агрегации Результат
SUM Возвращает сумму значений по множеству.
Количество Возвращает количество значений по множеству.
Макс. Возвращает максимальное значение по множеству.
Мин. Возвращает минимальное значение по множеству.
Полуаддитивные агрегационные функции Возвращает вычисление полуаддитивного поведения над множеством после проекции фигуры на ось времени.
Уникальное число Агрегированные данные фактов, вносящие вклад в подкуб, когда ось слайсера включает множество.

Возвращает разное количество для каждого члена множества. Результат зависит от безопасности агрегируемых ячеек, а не от безопасности ячеек, необходимых для вычислений. Безопасность ячеек на площадке создаёт ошибку; Безопасность ячеек ниже гранулярности указанного множества игнорируется. Вычисления на наборе создают ошибку. Вычисления ниже гранулярности множества игнорируются. Различный счёт по множеству, включающему одного члена и одного или нескольких его потомков, возвращает разный счёт по фактам, вносящим вклад в дочернего члена.
Атрибуты, которые невозможно агрегировать Возвращает сумму значений.
Смешанные функции агрегирования Не поддерживается и вызывает ошибку.
Унарные операторы Не уважаемые; Значения агрегируются суммированием.
Рассчитанные меры Решите набор порядка, чтобы обеспечить применение рассчитанных мер.
Вычисляемые элементы Применяются обычные правила, то есть приоритет имеет последний порядок решения.
Assignments Присвоения агрегируются согласно функции агрегации мер. Если функция агрегации меры является разным счётом, присваивание суммируется.

Примеры

Следующий пример возвращает сумму Measures.[Order Quantity] элементов, агрегированных за первые восемь месяцев календарного 2003 года, содержащихся в измерении Date , из куба Adventure Works.

WITH MEMBER [Date].[Calendar].[First8Months2003] AS  
    Aggregate(  
        PeriodsToDate(  
            [Date].[Calendar].[Calendar Year],   
            [Date].[Calendar].[Month].[August 2003]  
        )  
    )  
SELECT   
    [Date].[Calendar].[First8Months2003] ON COLUMNS,  
    [Product].[Category].Children ON ROWS  
FROM  
    [Adventure Works]  
WHERE  
    [Measures].[Order Quantity]  

Следующий пример приводит итоги за первые два месяца второго семестра 2003 календарного года.

WITH MEMBER [Date].[Calendar].[First2MonthsSecondSemester2003] AS  
    Aggregate(  
        PeriodsToDate(  
            [Date].[Calendar].[Calendar Semester],   
            [Date].[Calendar].[Month].[August 2003]  
        )  
    )  
SELECT   
    [Date].[Calendar].[First2MonthsSecondSemester2003] ON COLUMNS,  
    [Product].[Category].Children ON ROWS  
FROM  
    [Adventure Works]  
WHERE  
    [Measures].[Order Quantity]  

Следующий пример возвращает количество реселлеров, чьи продажи снизились за предыдущий период, на основе выбранных пользователем значений State-Province участников, оценённых с помощью функции Aggregate. Функции Hierarchize и DrillDownLevel используются для возврата значений убывающих продаж по категориям товаров в измерении Product.

WITH MEMBER Measures.[Declining Reseller Sales] AS   
   Count(  
      Filter(  
         Existing(Reseller.Reseller.Reseller),   
            [Measures].[Reseller Sales Amount] < ([Measures].[Reseller Sales Amount],  
            [Date].Calendar.PrevMember)  
            )  
         )  
MEMBER [Geography].[State-Province].x AS   
   Aggregate (   
      {[Geography].[State-Province].&[WA]&[US],   
      [Geography].[State-Province].&[OR]&[US] }   
         )  
SELECT NON EMPTY Hierarchize (  
   AddCalculatedMembers (  
      {DrillDownLevel({[Product].[All Products]})}  
         )  
   )  
        DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS   
FROM [Adventure Works]  
WHERE ([Geography].[State-Province].x,   
    [Date].[Calendar].[Calendar Quarter].&[2003]&[4],  
    [Measures].[Declining Reseller Sales])