Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ordena um conjunto por ordem decrescente e devolve um conjunto de tuplas com os valores mais altos cujo total acumulado é igual ou superior a uma percentagem especificada.
Syntax
TopPercent(Set_Expression, Percentage, Numeric_Expression)
Arguments
Set_Expression
Uma expressão válida de Expressões Multidimensionais (MDX) que devolve um conjunto.
Percentagem
Uma expressão numérica válida que especifica a percentagem de tuplas a devolver.
Importante
A percentagem precisa de ser um valor positivo; valores negativos geram um erro.
Numeric_Expression
Uma expressão numérica válida que é tipicamente uma expressão de Expressões Multidimensionais (MDX) de coordenadas de célula que retornam um número.
Observações
A função TopPercent calcula a soma da expressão numérica especificada avaliada sobre o conjunto especificado, ordenando o conjunto por ordem decrescente. A função devolve então os elementos com os valores mais altos cuja percentagem acumulada do valor total somado é pelo menos a percentagem especificada. Esta função devolve o menor subconjunto de um conjunto cujo total cumulativo é pelo menos a percentagem especificada. Os elementos devolvidos estão ordenados do maior para o menor.
Warning
Se Numeric_Expression devolver qualquer valor negativo, então o TopPercent devolve apenas uma (1) linha.
Veja o segundo exemplo para uma apresentação detalhada deste comportamento.
Importante
Tal como a função BottomPercent , a função TopPercentual quebra sempre a hierarquia.
Examples
A. Retorno TopPercentual
O exemplo seguinte devolve as melhores cidades que ajudam a figurar no top 10% de vendas dos revendedores, na categoria de Bicicletas. O resultado é ordenado por ordem decrescente, começando pela cidade que tem o maior valor de vendas.
SELECT [Measures].[Reseller Sales Amount] ON 0,
TopPercent
({[Geography].[Geography].[City].Members}
, 10
, [Measures].[Reseller Sales Amount]
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
A expressão acima produz os seguintes resultados:
| City | Valor das Vendas do Revendedor |
|---|---|
| Toronto | $3.508.904,84 |
| London | $1.521.530,09 |
| Seattle | $1.209.418,16 |
| Paris | $1.170.425,18 |
O conjunto original de dados pode ser obtido com a seguinte consulta e retorna 588 linhas:
SELECT [Measures].[Reseller Sales Amount] ON 0,
Order
({[Geography].[Geography].[City].Members}
, [Measures].[Reseller Sales Amount]
, BDESC
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
B. Compreender o efeito dos valores negativos
A seguinte explicação ajudará a compreender o efeito dos valores negativos na Numeric_Expression. Primeiro, vamos construir algum contexto onde possamos apresentar o comportamento.
A consulta seguinte devolve uma tabela dos Revendedores com o 'Montante das Vendas', 'Custo Total do Produto' e 'Lucro Bruto', ordenados por ordem decrescente de lucro. Por favor, note que existem apenas valores negativos para o lucro; Assim, a menor perda aparece no topo.
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, ORDER( [Product].[Product Categories].[Bikes].[Touring Bikes].children, [Measures].[Reseller Gross Profit], BDESC ) ON rows
FROM [Adventure Works]
A consulta acima devolve os seguintes resultados; as linhas da secção do meio foram removidas para maior legibilidade.
| Bicicletas de Touring | Valor das Vendas do Revendedor | Revendedor Custo Total do Produto | Lucro Bruto do Revendedor |
|---|---|---|---|
| Digressão-2000 Blue, 50 | $157.444,56 | $163.112,57 | ($5.668,01) |
| Digressão-2000 Blue, 46 | $321.027,03 | $333.021,50 | ($11.994,47) |
| Touring-3000 Azul, 62 | $87.773,61 | $100.133,52 | ($12.359,91) |
| ... | ... | ... | ... |
| Touring-1000 Amarelo, 46 | $1.016.312,83 | $1.234.454,27 | ($218.141,44) |
| Touring-1000 Amarelo, 60 | $1.184.363,30 | $1.443.407,51 | ($259.044,21) |
Agora, se lhe pedissem para apresentar as 100 melhores bicicletas% por lucro, escreveria uma proposta como:
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, TOPPERCENT( [Product].[Product Categories].[Bikes].[Touring Bikes].children, 100,[Measures].[Reseller Gross Profit] ) ON rows
FROM [Adventure Works]
Por favor, note que a consulta pede cem por cento (100%); Isso significa que todas as linhas devem ser devolvidas. No entanto, como existem valores negativos no Numeric_Expression , apenas uma linha é devolvida.
| Bicicletas de Touring | Valor das Vendas do Revendedor | Revendedor Custo Total do Produto | Lucro Bruto do Revendedor |
|---|---|---|---|
| Digressão-2000 Blue, 50 | $157.444,56 | $163.112,57 | ($5.668,01) |