Compartilhar via


Usar funções de agregação

Quando uma dimensão é usada para fatiar uma medida, a medida é resumida ao longo das hierarquias contidas nessa dimensão. O comportamento de soma depende da função de agregação especificada para a medida. Para a maioria das medidas que contêm dados numéricos, a função de agregação é Sum. O valor da medida somará valores diferentes dependendo de qual nível da hierarquia está ativo.

No Analysis Services, cada medida criada é apoiada por uma função de agregação que determina a operação da medida. Os tipos de agregação predefinidos incluem Sum, , Min, Max, CountContagem Distinta e várias outras funções mais especializadas. Como alternativa, se você precisar de agregações com base em fórmulas complexas ou personalizadas, poderá criar um cálculo MDX em vez de usar uma função de agregação predefinida. Por exemplo, se você quiser definir uma medida para um valor percentual, faria isso no MDX usando uma medida calculada. Consulte a instrução CREATE MEMBER (MDX).

As medidas criadas por meio do Assistente de Cubo recebem um tipo de agregação como parte da definição de medida. O tipo de agregação é sempre Sum, supondo que a coluna de origem contenha dados numéricos. Sum é atribuído independentemente do tipo de dados da coluna de origem. Por exemplo, se você usou o Assistente de Cubo para criar medidas e importou todas as colunas de uma tabela de fatos, observará que todas as medidas resultantes têm uma agregação de Sum, mesmo que a origem seja uma coluna de data/hora. Revise sempre os métodos de agregação atribuídos previamente para as medidas criadas pelo assistente para garantir que a função de agregação seja adequada.

Você pode atribuir ou alterar o método de agregação na definição de cubo, por meio do SQL Server Data Tools – Business Intelligence ou por meio do MDX. Consulte Criar Medidas e Grupos de Medidas em Modelos Multidimensionais ou Agregação (MDX) para obter mais instruções.

Funções de agregação

O Analysis Services fornece funções para agregar medidas ao longo das dimensões contidas em grupos de medidas. A aditividade de uma função de agregação determina como a medida é agregada em todas as dimensões do cubo. As funções de agregação se enquadram em três níveis de aditividade:

Aditivo
Uma medida aditiva, também chamada de medida totalmente aditiva, pode ser agregada ao longo de todas as dimensões incluídas no grupo de medidas que contém a medida, sem restrição.

Semiadditivo
Uma medida semiadditiva pode ser agregada ao longo de algumas dimensões, mas não todas, incluídas no grupo de medidas que contém a medida. Por exemplo, uma medida que representa a quantidade disponível para inventário pode ser agregada ao longo de uma dimensão geográfica para produzir uma quantidade total disponível para todos os armazéns, mas a medida não pode ser agregada ao longo de uma dimensão de tempo porque a medida representa um instantâneo periódico de quantidades disponíveis. Agregar tal medida ao longo de uma dimensão temporal produziria resultados incorretos. Consulte Definir Comportamento Semiadditivo para obter detalhes.

Não aditivo
Uma medida nãoditiva não pode ser agregada ao longo de qualquer dimensão no grupo de medidas que contenha a medida. Em vez disso, a medida deve ser calculada individualmente para cada célula no cubo que representa a medida. Por exemplo, uma medida calculada que retorna uma porcentagem, como a margem de lucro, não pode ser agregada dos valores percentuais dos membros filhos em qualquer dimensão.

A tabela a seguir lista as funções de agregação no Analysis Services e descreve a aditividade e a saída esperada da função.

Função de agregação Aditividade Valor retornado
Sum Aditivo Calcula a soma dos valores para todos os membros filho. Essa é a função de agregação padrão.
Count Aditivo Recupera a contagem de todos os membros filho.
Min Semiadditivo Recupera o valor mais baixo para todos os membros filhos.
Max Semi-aditivo Recupera o valor mais alto entre todos os membros descendentes.
DistinctCount Não aditivo Recupera a contagem de todos os membros filhos únicos. Para mais detalhes, veja Sobre Medidas de Contagem Distinta na próxima seção.
None Não aditivo Nenhuma agregação é executada e todos os valores para membros folha e não folha em uma dimensão são fornecidos diretamente da tabela de fatos para o grupo de medidas que contém a medida. Se nenhum valor puder ser lido da tabela de fatos para um membro, o valor desse membro será definido como nulo.
ByAccount Semiadditivo Calcula a agregação de acordo com a função de agregação atribuída ao tipo de conta de um membro em uma dimensão de conta. Caso não exista nenhuma dimensão do tipo de conta no grupo de medidas, é tratado como a função de agregação None.

Para obter mais informações sobre dimensões de conta, consulte Crie uma Conta Financeira do tipo parental-filial Dimensão.
AverageOfChildren Semiadditivo Calcula a média dos valores de todos os submembros não vazios.
FirstChild Semiadditivo Recupera o valor do primeiro membro filho.
LastChild Semiadditivo Recupera o valor do último membro filho.
FirstNonEmpty Semiadditivo Recupera o valor do primeiro membro filho não vazio.
LastNonEmpty Semi-aditivo Recupera o valor do último membro filho não vazio.

Sobre métricas de contagem distinta

Uma medida cujo valor de propriedade de Função Agregada é Contagem Distinta é chamada de medida de contagem distinta. Uma medida de contagem distinta pode ser usada para contar ocorrências dos membros de nível mais baixo de uma dimensão na tabela de fatos. Como a contagem é distinta, se um membro ocorrer várias vezes, ele será contado apenas uma vez. Uma medida de contagem distinta é sempre colocada em um grupo de medidas dedicado. Posicionar uma medida de contagem distinta em seu próprio grupo de medidas é uma prática recomendada que foi incorporada à ferramenta de design como uma técnica de melhoria de performance.

Medidas de contagem distinta são comumente usadas para determinar, para cada membro de uma dimensão, quantos membros distintos de nível mais baixo de outra dimensão compartilham linhas na tabela de fatos. Por exemplo, em um cubo de Vendas, para cada cliente e grupo de clientes, quantos produtos distintos foram comprados? (Ou seja, para cada membro da dimensão Clientes, quantos membros distintos de nível mais baixo da dimensão Produtos compartilham linhas na tabela de fatos?) Ou, por exemplo, em um cubo de Visitas ao Site da Internet, para cada visitante do site e grupo de visitantes, quantas páginas distintas no site foram visitadas? (Ou seja, para cada membro da dimensão Visitantes do Site, quantos membros distintos e de nível mais baixo das linhas de compartilhamento de dimensão Pages na tabela de fatos?) Em cada um desses exemplos, os membros de nível mais baixo da segunda dimensão são contados por uma medida de contagem distinta.

Esse tipo de análise não precisa se limitar a duas dimensões. Na verdade, uma medida de contagem única pode ser separada e segmentada por qualquer combinação de dimensões no cubo, incluindo a dimensão que contém os membros contados.

Uma medida de contagem distinta que quantifica os membros é baseada em uma coluna de chave estrangeira na tabela de fatos. (Ou seja, a propriedade Coluna de Origem da medida identifica esta coluna.) Esta coluna une-se à coluna da tabela de dimensões que identifica os membros contados pela medida de contagem distinta.

Consulte Também

Medidas e grupos de medidas
MDX (Referência de Função MDX)
Definir comportamento semiadditivo