Partilhar via


Função Aggregate (MDX)

Retorna um número que é calculado com a agregação nas células retornadas pela expressão de conjunto. Se uma expressão numérica não for fornecida, essa função agregará cada medida no contexto atual de consulta usando o operador padrão de agregação especificado para cada medida. Se uma expressão numérica for fornecida, essa função primeiro avalia e, em seguida, soma a expressão numérica de cada célula no conjunto especificado.

Sintaxe

Aggregate(Set_Expression [ ,Numeric_Expression ])

Argumentos

  • Set_Expression
    Uma linguagem MDX válida que retorna um conjunto.

  • Numeric_Expression
    Uma expressão numérica válida, geralmente uma linguagem MDX de coordenadas de célula, que retorna um número.

Comentários

Se um conjunto de tuplas vazias ou um conjunto vazio for especificado, essa função retornará um valor vazio.

A tabela a seguir descreve como a função Aggregate se comporta com funções de agregação diferentes.

Operador de agregação

Resultado

Soma

Retorna a soma dos valores no conjunto.

Contagem

Retorna a contagem dos valores no conjunto.

Max

Retorna o valor máximo no conjunto.

Min

Retorna o valor mínimo no conjunto.

Funções de agregação semi-aditivas

Retorna o cálculo de comportamento semi-aditivo no conjunto depois de projetar a forma no eixo de tempo.

Contagem Distinta

Faz agregações nos dados de fatos que contribuem com o subcubo quando o eixo do slicer inclui um conjunto.

Retorna a contagem distinta para cada membro do conjunto. O resultado depende da segurança das células que estão sendo agregadas e não da segurança das células obrigatórias para o cálculo. A segurança de célula no conjunto gera um erro; a segurança de célula abaixo da granularidade do conjunto especificado é ignorada. Os cálculos no conjunto geram um erro. Os cálculos abaixo da granularidade do conjunto são ignorados. A contagem distinta em um conjunto que inclui um membro e um ou mais filhos retorna a contagem distinta dos fatos que contribuem com o membro filho.

Atributos que não podem ser agregados

Retorna a soma dos valores.

Funções de agregação mista

Sem suporte e gera um erro.

Operadores unários

Não respeitados; os valores são agregados pela adição.

Medidas calculadas

A ordem de resolução é definida para assegurar a adequação da medida calculada.

Membros calculados

Regras normais se aplicam, quer dizer, a última ordem de resolução tem prioridade.

Atribuições

As atribuições são agregadas de acordo com a função de agregação de medida. Se a função de agregação de medida for uma contagem distinta, a atribuição será somada.

Exemplos

O exemplo a seguir retorna a soma do membro Measures.[Order Quantity], agregado nos primeiros oito meses do ano calendário 2003 contidos na dimensão Date, a partir do cubo 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]

O exemplo a seguir mostra a agregação durante os primeiros dois meses do segundo semestre do ano calendário 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]

O exemplo a seguir retorna a contagem dos revendedores cujas vendas caíram ao longo do período anterior, com base em valores de Estado do membro, selecionados pelo usuário, avaliados usando a função de agregação. As funções Hierarchize e DrillDownLevel são usadas para retornar valores por queda de vendas para categorias de produtos na dimensão Produto.

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])