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 exressã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 semiaditivas |
Retorna o cálculo de comportamento semiaditivo 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 sobre os 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 Aggregate. 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])