Sunteți pe pagina 1din 9

Análise de Conjunto - Set Analysis

Análise de Conjunto
Análise de Conjunto - Set Analysis

Conjuntos podem ser usados em funções de agregação. As funções de agregação


normalmente agregam sobre o conjunto de registros possíveis definido pela seleção
atual. Mas um conjunto de registros alternativos pode ser definido por uma expressão de
conjunto. Por isso, um conjunto é conceitualmente semelhante a uma seleção.

Uma expressão de conjunto sempre começa e termina com chaves quando usada, por
exemplo, {BM01}.

Identificadores de conjunto

Existe uma constante que pode ser usada para denotar um conjunto de registros; 1. Ela
representa um conjunto completo de todos os registros no aplicativo.

O sinal $ representa os registros da seleção atual. A expressão de conjunto {$} é


equivalente a não definir uma expressão de conjunto. {1-$} define o inverso da seleção
atual, ou seja, tudo que a seleção atual exclui.

Seleções da pilha Retroceder/Avançar podem ser usadas como identificadores de


conjunto, pelo uso do símbolo de dólar: $1 representa a seleção anterior, ou seja, o
equivalente a pressionar o botão Voltar. De forma semelhante, $_1 representa a etapa
seguinte, ou seja, o equivalente a pressionar o botão Avançar. Qualquer inteiro sem
sinal pode ser usado nas notações Retroceder e Avançar, ou seja, $0 representa a
seleção atual.

Por fim, os marcadores podem ser usados como identificadores de conjunto. Observe
que somente o servidor e os marcadores de documento podem ser usados como
identificadores de conjunto. O ID do marcador ou o nome do marcador pode ser usado,
por exemplo, BM01 ou MeuMarcador. Somente a parte de seleção de um marcador é
usada. Os valores não estão incluídos. Não é possível, então, usar campos de entrada
nos marcadores para análises de conjuntos.

Exemplos:
sum( {$} Vendas )
retorna as vendas para a seleção atual, ou seja, o mesmo que sum(Vendas).

sum( {$1} Vendas )


retorna as vendas para a seleção anterior.

sum( {$_2} Vendas )


retorna as vendas para a 2ª seleção, ou seja, duas etapas seguintes. Relevante
somente depois de duas operações Voltar feitas recentemente.

sum( {1} Vendas )


retorna o total das vendas no aplicativo, sem importar a seleção,
Análise de Conjunto - Set Analysis

mas não a dimensão. Se usado em um gráfico com, por exemplo, Produtos como
dimensão, cada produto obterá um valor diferente.

sum( {1} Total Vendas )


retorna o total das vendas no aplicativo, sem importar a seleção e a dimensão. Isto
é, o mesmo que sum(Todas as Vendas).

sum( {BM01} Vendas )


retorna as vendas para o marcador BM01.

sum( {MyBookMark} Vendas )


retorna vendas para o marcador MyBookMark.

sum({Server\BM01} Vendas)
retorna as vendas para o marcador do servidor BM01.

sum({Document\MyBookmark}Vendas)
retorna as vendas do marcador de documento MeuMarcador.

Operadores de conjunto

Existem vários operadores de conjunto que podem ser usados nas expressões de
conjunto. Todos os operadores de conjunto usam conjuntos como operandos, conforme
descrito acima, e retornam um conjunto como resultado.

+ União. Essa operação binária retorna um conjunto formado pelos registros que
pertencem a qualquer um dos dois operandos do conjunto.

— Exclusão. Essa operação binária retorna um conjunto formado pelos registros que
pertencem apenas ao primeiro operando do conjunto. Além disso, quando usada como
um operador unário, ela retorna o conjunto complementar.

* Interseção. Essa operação binária retorna um conjunto formado pelos registros que
pertencem aos dois operandos do conjunto.

/ Diferença simétrica (XOR). Essa operação binária retorna um conjunto formado pelos
registros que pertencem a um dos dois operandos do conjunto.

A ordem de precedência é 1) Unário menos (complemento), 2) Interseção e Diferença


simétrica e 3) União e Exclusão. Em um grupo, a expressão é avaliada da esquerda para
a direita. É possível definir ordens alternativas usando parênteses, que podem ser
necessários, visto que os operadores de conjunto não comutam, por exemplo, A+(B-C) é
diferente de (A+B)-C e de (A-C)+B.

Exemplos:
sum( {1-$} Vendas )
retorna todas as vendas excluídas pela seleção atual.
Análise de Conjunto - Set Analysis

sum( {$*BM01} Vendas )


retorna as vendas para a interseção entre a seleção atual e o marcador BM01.

sum( {-($+BM01)} Vendas )


retorna as vendas excluídas pela seleção atual e pelo marcador BM01.

Nota
O uso dos operadores de conjunto em combinação com as expressões de agregação
básicas que envolvem campos de várias tabelas do QlikView pode resultar em
resultados imprevisíveis, devendo assim, ser evitado. Por exemplo, se Quantidade e
Preço forem campos de tabelas diferentes, a expressão
sum({$*BM01}Quantidade*Preço) deverá ser evitada.

Modificadores de conjunto

Um conjunto pode ser modificado por uma seleção adicional ou alterado. Uma
modificação como essa pode ser escrita na expressão do conjunto. O modificador é
composto por um dos diversos nomes de campo, cada um seguido de uma seleção que
deve ser feita no campo e estar entre < e >. Exemplo:
<Ano={2007,+2008},Região={US}>. Os nomes e os valores de campo podem estar
entre aspas: <[Região das Vendas]={’Costa oeste’, ’América do Sul’}>.

Existem várias formas de definir a seleção: Um caso simples é uma seleção baseada nos
valore selecionados de outro campo, por exemplo, <DataPedido = DataEntrega>. Esse
modificador usará os valores selecionados de DataEntrega e os aplicará como uma
seleção em DataPedido. Se houver muitos valores diferentes – mais de duzentos – essa
operação ocupará muito a CPU e deve ser evitada.

Contudo, o caso mais comum é uma seleção baseada em uma lista de valores de campo
entre chaves, os valores separados por vírgula, por exemplo, <Ano = {2007, 2008}>. As
chaves aqui definem um conjunto de elementos, em que os elementos podem ser valores
de campo ou pesquisas de valores de campo. Uma pesquisa é sempre definida pela
utilização de aspas duplas, por exemplo, <Ingrediente = {"*Alho*"}> selecionará todos
os ingredientes com a palavra‘alho’. As pesquisas são sensíveis a maiúsculas e também
são feitas para valores excluídos.

Conjuntos de elementos vazios explicitamente como<Produto = {}> ou implicitamente


como<Produto = {"Perpetuum Mobile"}> (uma pesquisa sem resultados) indicam
nenhum produto, ou seja, eles resultarão em um conjunto de registros que não está
associado a qualquer produto. Observe que esse conjunto não pode ser obtido pelas
seleções comuns, a menos que uma seleção seja feita em outro campo como o
IDTransação.

Por fim, para os campos no modo AND, também há a possibilidade de uma exclusão
forçada. Se quiser forçar a exclusão de valores de campo específicos, você precisará
usar “~” antes do nome do campo.

Um modificador de conjunto pode ser usado em um identificador de


conjunto ou sozinho. Ele não pode ser usado em uma expressão de
Análise de Conjunto - Set Analysis

conjunto. Quando usado em um identificador de conjunto, o modificador deve ser


escrito imediatamente depois do identificador de conjunto, por exemplo, {$<Ano =
2007,2008>}. Quando usado sozinho, ele é interpretado como uma modificação da
seleção atual.

Exemplos:
sum( {1<Região= {US} >} Vendas )
retorna as vendas da região dos EUA, sem importar a seleção atual.

sum( {$<Região = >} Vendas )


retorna as vendas para a seleção atual, mas com a seleção em “Região” removida.

sum( {<Região = >} Vendas )


retorna o mesmo como o exemplo anterior. Quando o conjunto para modificar for
omitido, $ é adotado.

Nota!
A sintaxe nos dois exemplos anteriores é interpretada como “nenhuma seleção”
em “Região”, ou seja, todas as regiões com outras seleções serão possíveis. Ela
não é equivalente à sintaxe <Região = {}> (nem a qualquer outro texto à direita
do sinal de igual implicitamente resultando em um conjunto de elementos vazio)
que é interpretada como nenhuma região.

sum( {$<Ano = {2000}, Região = {US, SE, DE, UK, FR}>} Vendas )
retorna as vendas da seleção atual, mas com as novas seleções em “Ano” e em
“Região”.

sum( {$<~Ingrediente = {“*alho*”}>} Vendas )


retorna as vendas para a seleção atual, mas com uma exclusão forçada de todos os
ingredientes que contêm a string “alho”.

sum( {$<Ano = {“2*”}>} Vendas )


retorna as vendas da seleção atual, mas com todos os anos que começam com o
número “2”, ou seja, muito provavelmente do ano 2000 em diante, selecionados
no campo.

sum( {$<Ano = {“2*”,”198*”}>} Vendas )


conforme a sintaxe acima, mas o ano 1980 também está incluído na seleção.

sum( {$<Ano = {“>1978<2004”}>} Vendas )


conforme a sintaxe acima, mas com uma pesquisa numérica para que um
intervalo arbitrário possa ser especificado.
Análise de Conjunto - Set Analysis

Modificadores de Conjunto com operadores de conjunto

A seleção dentro de um campo pode ser definida usando-se os operadores de conjunto


conforme descrito acima, trabalhando em conjuntos de elementos diferentes. Por
exemplo, o modificador <Ano = {"20*", 1997} - {2000}> selecionará todos os anos que
começam com “20” além de “1997”, exceto “2000”.

Exemplos:
sum( {$<Produto = Produto + {NossoProduto1} – {NossoProduto2} >} Vendas )
retorna as vendas da seleção atual, mas com o produto “NossoProduto1”
adicionado à lista de produtos selecionados e “NossoProduto2” removido da lista
de produtos selecionados.

sum( {$<Ano = Ano + ({“20*”,1997} – {2000}) >} Vendas )


retorna as vendas da seleção atual, mas com seleções adicionais no campo “Ano”:
1997 e todos os anos que começam com “20” – exceto o ano 2000. Observe que
se 2000 estivesse incluído na seleção atual, ele continuaria incluído após a
modificação.

sum( {$<Ano = (Ano + {“20*”,1997}) – {2000} >} Vendas )


retorna quase o mesmo resultado acima, mas aqui o ano 2000 será excluído,
mesmo se estivesse inicialmente incluído na seleção atual. O exemplo mostra a
importância da utilização de parênteses em alguns casos, para definir uma ordem
de precedência.

sum( {$<Ano = {“*”} – {2000}, Produto = {“*suporte*”} >} Vendas )


retorna as vendas da seleção atual, mas com uma nova seleção em “Ano”: todos
os anos exceto o ano 2000; e somente para produtos que contêm a palavra
‘suporte’.

Modificadores de Conjunto usando atribuições com operadores de


conjunto implícitos

A notação acima define novas seleções, sem importar a seleção atual no campo.
Contudo, se desejar basear a sua seleção atual no campo e adicionar valores de campo,
você pode, por exemplo, definir um modificador <Ano = Ano + {2007, 2008}>. Uma
forma mais curta e equivalente de escrever isso é <Ano += {2007, 2008}>, ou seja, o
operador de atribuição define implicitamente uma união. Além disso, interseções,
exclusões e diferenças simétricas implícitas podem ser definidas com “*=”, “–=” e “/=”.

Exemplos:
sum( {$<Produto += {NossoProduto1, NossoProduto2} >} Vendas )
retorna as vendas da seleção atual, mas usando uma união implícita para adicionar
os produtos "NossoProduto1” e “NossoProduto2” à lista de
produtos selecionados.
Análise de Conjunto - Set Analysis

sum( {$<Ano += {“20*”,1997} – {2000} >} Vendas )


retorna as vendas da seleção atual, mas usando uma união implícita para adicionar
um número de anos à seleção: 1997 e todos os anos que começam com “20” –
exceto o ano 2000. Observe que se 2000 estivesse incluído na seleção atual, ele
continuaria incluído após a modificação. O mesmo que <Ano=Ano +
({“20*”,1997}–{2000})>

sum( {$<Produto *= {NossoProduto1} >} Vendas )


retorna as vendas da seleção atual, mas somente para a inserção dos produtos
atualmente selecionados e do produto “NossoProduto1”.

Modificadores de Conjunto com expansões de sinal de dólar

As variáveis e outras expansões do sinal de dólar podem ser usadas nas expressões de
conjunto.

Exemplos:
sum( {$<Ano = {$(#vLastYear)}>} Vendas )
retorna as vendas do ano anterior em relação à seleção atual. Aqui, uma variável
vLastYear contendo o ano relevante é usada em uma expansão de sinal de dólar.

sum( {$<Ano = {$(#=Only(Year)-1)}>} Vendas)


retorna as vendas do ano anterior em relação à seleção atual. Aqui, uma expansão
de sinal de dólar é usada para calcular o ano anterior.

Modificadores de Conjunto com pesquisas avançadas

As pesquisas avançadas que usam curingas e agregações podem ser usadas para
definição de conjuntos.

Exemplos:
sum( {$–1<Produto = {“*Interno*”, “*Doméstico*”}>} Vendas )
retorna as vendas da seleção atual, excluindo as transações que pertencem a
produtos com a palavra ‘Interno’ ou ‘Doméstico’ no nome do produto.

sum( {$<Cliente = {“=Sum({1<Ano = {2007}>} Vendas ) > 1000000”}>}


Vendas )
retorna as vendas da seleção atual, mas com uma nova seleção no campo
“Cliente”: apenas os clientes que em 2007 apresentaram uma total de vendas de
mais de 1000000.
Análise de Conjunto - Set Analysis

Modificadores de Conjunto com definições de valor de campo implícitas

Nos exemplos acima, todos os valores de campo foram explicitamente definidos ou


definidos por pesquisas. Entretanto, há uma outra maneira de definir um conjunto de
valores de campo pelo uso de uma definição de conjunto aninhado.

Nesses casos, devem ser usadas as funções de elemento P() e E(), representando o
conjunto de elementos de valores possíveis e os valores excluídos de um campo,
respectivamente. Dentro dos parênteses, é possível especificar uma expressão de
conjunto e um campo, por exemplo, P({1} Cliente). Essas funções não podem ser
usadas em outras expressões:

Exemplos:
sum( {$<Cliente = P({1<Produto={‘Sapato’}>} Cliente)>} Vendas )
retorna as vendas da seleção atual, mas somente os clientes que já compraram o
produto ‘Sapato’. Aqui, a função de elemento P( ) retorna uma lista de clientes
possíveis; aqueles decorrentes da seleção ‘Sapato’ no campo Produto.

sum( {$<Cliente = P({1<Produto={‘Sapato’}>})>} Vendas )


o mesmo que o anterior. Se o campo na função de elemento for omitido, a função
retornará os valores possíveis do campo especificado na atribuição externa.

sum( {$<Cliente = P({1<Produto={‘Sapato’}>} Fornecedor)>} Vendas )


retorna as vendas da seleção atual, mas somente os clientes que já forneceram o
produto ‘Sapato’. Aqui, a função de elemento P( ) retorna uma lista de
fornecedores possíveis; aqueles decorrentes da seleção ‘Sapato’ no campo
Produto. Assim, a lista de fornecedores é usada como uma seleção no campo
Cliente.

sum( {$<Cliente = E({1<Produto={‘Sapato’}>})>} Vendas )


retorna as vendas da seleção atual, mas somente os clientes que nunca compraram
o produto ‘Sapato’. Aqui, a função de elemento E( ) retorna a lista de clientes
excluídos; aqueles excluídos pela seleção ‘Sapato’ no campo Produto.
Análise de Conjunto - Set Analysis

Sintaxe para Conjuntos

Por isso, a sintaxe completa (sem incluir a utilização opcional dos parênteses padrão
para definir a precedência) é

definir_expressão ::= {definir_entidade { definir_operador definir_entidade } }

definir_entidade ::= definir_identificador [ definir_modificador ]

definir_identificador ::= 1 | $ | $N | $_N | id_do_marcador | nome_do_marcador

definir_operador ::= + | - | * | /

definir_modificador ::= < seleção_de_campo {, seleção_de_campo } >

seleção_de_campo ::= nome_do_arquivo [ = | += | ¬–= | *= | /=


] expressão_do_conjunto_de_elementos

expressão_do_conjunto_de_elementos ::= conjunto_de_elementos{


definir_operador conjunto_de_elementos }

conjunto_de_elementos ::= [ nome_do_arquivo ] | { lista_de_elementos } |


função_de_elemento

lista_de_elemetos ::= elemento { , elemento }

função_de_elemento ::= ( P | E ) ( [ definir_expressão ] [ nome_do_campo ] )

elemento ::= valo_do_campo | " máscara_de_pesquisa "

S-ar putea să vă placă și