Bottom
Bottom() avalia uma expressão na última linha (inferior) de um segmento de coluna em uma tabela. A linha para a qual ela é calculada depende do valor de offset, se presente, sendo o valor padrão a linha inferior. Para gráficos que não sejam tabelas, a avaliação é feita na última linha da coluna atual, no equivalente de tabela estática do gráfico.
Sintaxe:
Bottom([TOTAL] expr [ , offset [,count ]])
Tipo de dados de retorno: dual
Argumentos:
- expr: A expressão ou campo que contém os dados a serem medidos.
- offset: Especificar um offset n, maior que 0, move a avaliação da expressão n linhas acima da atual. A especificação de um deslocamento igual a 0 avaliará a expressão na linha atual. Especificar um número de compensação negativa faz a função Above atuar como a função Below com o número de compensação positiva correspondente.
- count: Especificando um terceiro argumento count maior que 1, a função retornará uma série de valores count, um para cada uma das linhas da tabela count, contado para cima a partir da célula original. Dessa forma, a função pode ser usada como um argumento para qualquer uma das funções de intervalo especiais. Funções de intervalo
- TOTAL: Se a tabela for unidimensional ou se o qualificador TOTAL for usado como argumento, o segmento de coluna atual será sempre igual à coluna inteira.
Limitações:
-
As chamadas recursivas retornarão NULL.
-
A classificação por valores y em gráficos ou por colunas de expressão em tabelas não é permitida quando essa função de gráfico é usada em qualquer uma das expressões do gráfico. Essas alternativas de classificação estão, portanto, automaticamente desabilitadas. Quando você usar essa função de gráfico em uma visualização ou tabela, a classificação da visualização será revertida para a entrada classificada dessa função.
Exemplos e resultados:
Exemplo 1:
Customer | Sum(Sales) | Bottom(Sum(Sales)) | Sum(Sales) + Bottom(Sum(Sales)) | Bottom offset 3 |
---|---|---|---|---|
- | 2566 | 757 | 3323 | 3105 |
Astrida | 587 | 757 | 1344 | 1126 |
Betacab | 539 | 757 | 1296 | 1078 |
Canutility | 683 | 757 | 1440 | 1222 |
Divadip | 757 | 757 | 1514 | 1296 |
Na representação do gráfico da tabela mostrada neste exemplo, a tabela é criada a partir da dimensão Customer e das medições: Sum(Sales) e Bottom(Sum(Sales)).
A coluna Bottom(Sum(Sales)) retorna 757 para as todas as linhas, porque esse é o valor da linha inferior: Divadip.
A tabela também mostra medições mais complexas: uma criada a partir de Sum(Sales)+Bottom(Sum(Sales)) e uma rotulada como Bottom offset 3, que é criada usando a expressão Sum(Sales)+Bottom(Sum(Sales), 3) e tem o argumento offset definido como 3. Ela acrescenta o valor Sum(Sales) da linha atual ao valor da terceira linha a partir da linha inferior, isto é, a linha atual mais o valor de Betacab.
Exemplo 2:
Nas representações dos gráficos de tabela mostrados neste exemplo, foram adicionadas mais dimensões aos gráficos: Month e Product. Para gráficos com mais de uma dimensão, os resultados de expressões que contêm as funções Above, Below, Top e Bottom dependem da ordem em que as dimensões da coluna são classificadas pelo QlikView. O QlikView avalia as funções com base nos segmentos de coluna que resultam da dimensão que é classificada por último. A ordem de classificação da coluna é controlada no painel de propriedades em Classificação e não é necessariamente a ordem em que as colunas aparecem na tabela.
Na primeira tabela, a expressão é avaliada com base no Month, e na segunda tabela é avaliada com base no Product. A medição End value contém a expressão Bottom(Sum(Sales)). A linha inferior de Month é Dec, o valor de Dec e ambos os valores de Product mostrados na tabela são 22. (Algumas linhas não são exibidas, para economizar espaço).
Customer | Product | Month | Sum(Sales) | End value |
---|---|---|---|---|
- | - | - | 2566 | - |
Astrida | AA | Jan | 46 | 22 |
Astrida | AA | Feb | 60 | 22 |
Astrida | AA | Mar | 70 | 22 |
... | ... | ... | ... | ... |
Astrida | AA | Sep | 78 | 22 |
Astrida | AA | Oct | 12 | 22 |
Astrida | AA | Nov | 78 | 22 |
Astrida | AA | Dec | 22 | 22 |
Astrida | BB | Jan | 46 | 22 |
Customer | Product | Month | Sum(Sales) | End value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | BB | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 60 |
Astrida | BB | Feb | 60 | 60 |
Astrida | AA | Mar | 70 | 70 |
Astrida | BB | Mar | 70 | 70 |
Astrida | AA | Apr | 13 | 13 |
Astrida | BB | Apr | 13 | 13 |
Consulte o Exemplo 2 na função Above para obter mais detalhes.
Exemplo 3:
A função Bottom pode ser usada como entrada para as funções range. Por exemplo: RangeAvg (Bottom(Sum(Sales),1,3)).
Nos argumentos para a função Bottom(), offset está definido como 1 e count está definido como 3. A função encontra os resultados da expressãoSum(Sales) em três linhas imediatamente acima da linha atual no segmento de coluna (porque offset=1), e as duas linhas acima (onde há uma linha). Estes três valores são usados como entrada para a função RangeAvg(), que encontra a média de valores na variação de números fornecidos.
Uma tabela com Customer como dimensão dá os seguintes resultados para a expressão RangeAvg().
Customer | RangeAvg (Bottom(Sum(Sales),1,3)) |
---|---|
Astrida | 659.67 |
Betacab | 659.67 |
Canutility | 659.67 |
Divadip | 659.67 |
Dados usados nos exemplos:
Monthnames:
LOAD * INLINE [
Month, Monthnumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
crosstable (Month, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|');
Para obter os meses para classificar na ordem correta, ao criar seus gráficos, acesse a aba Sort das propriedades do gráfico e marque a caixa de seleção Expression em Sort by. Na caixa de expressões, escreva Monthnumber.