Sumário
Análise de conjunto e expressões de conjunto............................................................................2
Criando expressões de conjunto..............................................................................................3
Identificadores.........................................................................................................................4
Operadores..............................................................................................................................5
Modificadores..........................................................................................................................6
Sintaxe para conjuntos.............................................................................................................7
Modificadores de conjunto......................................................................................................8
Baseado em outro campo........................................................................................................8
Com base em conjuntos de elementos....................................................................................8
Exclusão forçada.......................................................................................................................9
Modificadores de conjunto com operadores de conjunto.....................................................11
Modificadores de conjunto usando atribuições com operadores de conjunto implícitos......11
Modificadores de conjunto com pesquisas avançadas...........................................................12
Modificadores de conjunto com expansões de sinal de dólar................................................12
Modificadores de conjunto com definições de valor de campo implícitas.............................13
Fonte
Qlik Help: [Link]
[Link]
ChartFunctions/SetAnalysis/[Link]
[Link]
ChartFunctions/[Link]
[Link]
ChartFunctions/SetAnalysis/[Link]
[Link]
%C3%AAs-BR/gpm-p/1488633
Análise de conjunto e expressões de
conjunto
A análise de conjunto oferece um meio de definir um conjunto (ou grupo) de valores
de dados que está diferente do conjunto normal definido pelas seleções atuais.
Geralmente, quando você faz uma seleção, funções de agregação,
como Sum,Max,Min,Avg e Count agregam sobre as seleções que você fez: as
seleções atuais. Suas seleções automaticamente definem o conjunto de dados para
agregar por cima. Com a análise de conjunto você pode definir um grupo que é
independente das seleções atuais. Isso pode ser útil se você quer mostrar um valor
particular, por exemplo, participação de mercado de um produto em todas as
regiões, independentemente das seleções atuais.
Análise de conjunto também é útil quando se faz diferentes tipos de comparação,
como produtos mais vendidos comparados com os produtos menos vendidos, ou
esse ano comparado ao ano passado.
Imagine um exemplo no qual você começa a trabalhar em um aplicativo
selecionando o ano de 2010 em uma caixa de filtro. As agregações são então
baseadas nessa seleção, e as visualizações mostram apenas valores para aquele ano.
Quando você faz novas seleções, as visualizações são atualizadas de acordo. As
agregações são feitas sobre o conjunto de registros possíveis definido pela seleção
atual. Com a análise de conjunto, você pode definir um conjunto que é de seu
interesse e não depende dessas seleções.
Criando expressões de conjunto
Antes de olhar para partes diferentes de um exemplo da análise de conjunto, há uma
distinção que deve ser feita entre uma expressão de conjunto e análise de conjunto:
A definição de um conjunto de valores de campo é chamada de definição de uma
expressão de conjunto; enquanto que o uso de expressões de conjunto para analisar
os dados é chamado de análise de conjunto. Consequentemente, o resto dessa
seção foca na expressão de conjunto e seus componentes.
Aqui está um exemplo de análise de conjunto: sum( {$<Year={2009}>} Sales ), em
que {$<Year={2009}>} é uma expressão de conjunto.
Há duas regras gerais de sintaxe para uma expressão de conjunto:
Uma expressão de conjunto deve ser usada em uma função de agregação. Nesse
exemplo, a função de agregação é sum(Sales).
Uma expressão de conjunto deve estar dentro de chaves, {}. No exemplo, a
expressão de conjunto é: {$<Year={2009}>}.
Uma expressão de conjunto consiste em uma combinação das seguintes partes:
Identificadores. Um ou mais identificadores definem a relação entre a expressão de
conjunto e o que está sendo avaliado no resto da expressão. Uma expressão de
conjunto consiste de um identificador único, como o sinal de dólar, {$}, que significa
todos os registros na seleção atual.
Operadores. Se há mais do que um identificador, um operador ou operadores são
usados para refinar o conjunto de dados especificando como os conjuntos de dados
representados pelos identificadores são combinados para criar um subconjunto ou
superconjunto, por exemplo.
Modificadores. Um modificador ou modificadores podem ser adicionados à
expressão do conjunto para mudar a seleção. Um modificador pode ser usado
sozinho ou para modificar um identificador para filtrar o conjunto de dados.
Examples:
Example 1:
{$<Year={2009}>}
Esta expressão de conjunto contém um identificador $ e o
modificador <Year={2009>}. Esse exemplo não inclui um operador. A expressão de
conjunto é interpretada como: "Todos os registros na seleção atual que pertencem
ao ano de 2009".
Example 2:
Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales)
Esta expressão de conjunto contém os identificadores $ e 1, o operador + e os
modificadores <Year={2009}> e <Country={'Sweden'}>.
Esta expressão de conjunto foi criada para somar as vendas do ano de 2009
associadas às seleções atuais e adicionar o conjunto completo de dados associados
ao país Sweden em todos os anos.
Nota:Expressões de conjunto podem ser apenas usadas em expressões para visualização,
não em expressões de script.
Identificadores, operadores e modificadores são descritos em mais detalhes dentro
das subseções seguintes.
Identificadores
Identificadores definem a relação entre a expressão de conjunto e os valores do
campo ou expressão que está sendo avaliada.
Em nosso exemplo sum( {$<Year={2009}>} Sales ), o identificador é o sinal de
dólar, $, e significa que o conjunto de registros a serem avaliados consiste em todos
os registros da seleção atual. Esse conjunto é então filtrado ainda mais pela parte
modificadora da expressão de conjunto. Em uma expressão de conjunto mais
complexa, dois identificadores podem ser combinados usando um operador.
Essa tabela mostra alguns identificadores comuns.
Identificadores
Identificador Descrição
1 Representa um conjunto completo de todos os registros no aplicativo,
independente de quaisquer seleções feitas.
$ Representa os registros da seleção atual. A expressão de conjunto {$} é
equivalente a não definir uma expressão de conjunto.
$1 Representa a seleção anterior. $2 representa seleção-menos-um
anterior, e adiante.
$_1 Representa a próxima (para frente) seleção. $_2 representa a próxima
seleção-mais-um, e adiante.
BM01 Você pode usar qualquer ID do marcador ou nome do marcador.
MyAltState Você pode fazer referência às seleções realizadas em um estado
alternado por seu nome de estado.
Essa tabela mostra alguns exemplos com identificadores diferentes.
Exemplos com identificadores diferentes
Exemplo Resultado
sum ({1} Sales) Retorna o total das vendas no aplicativo, desconsiderando as seleções
porém não a dimensão.
sum ({$} Sales) Retorna as vendas da seleção atual , ou seja , o mesmo que sum(Sales).
sum ({$1} Sales) Retorna as vendas da seleção anterior.
sum ({BM01} Retorna as vendas do marcador chamado BM01.
Sales)
Operadores
Os operadores são usados para incluir, excluir ou cruzar conjuntos de dados inteiros
ou em partes. Todos os operadores usam conjuntos como operandos e retornam um
conjunto como resultado.
Essa tabela mostra operadores que podem ser usados nas expressões de conjunto.
Operadores
Operador Descrição
+ 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, mas não ao outro. 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.
Essa tabela mostra alguns exemplos com operadores.
Exemplos com operadores
Exemplos Resultados
sum( {1-$} Sales ) Retorna vendas de tudo excluído pela
seleção.
sum( {$*BM01} Sales ) Retorna as vendas da interseção entre a
seleção e o marcador BM01.
sum( {-($+BM01)} Sales ) Retorna as vendas excluídas pela
seleção e o marcador BM01.
Sum({$<Year={2009}>+1<Country={'Sweden'}>} Retorna as vendas do ano de 2009
Sales) associadas às seleções atuais e adiciona
o conjunto completo de dados
associados ao país Sweden em todos os
anos.
Modificadores
Os modificadores são usados para fazer adições ou mudanças à uma seleção. Essas
modificações podem ser escritas na expressão de conjunto. Um modificador consiste
em um ou em vários nomes de campo, cada um seguido de uma ou várias seleções
que devem ser feitas no campo. Modificadores começam e terminam com chevrons
(sinal de maior/menor), <>.
Um modificador de conjunto modifica a seleção do identificador do conjunto
anterior. Se nenhum identificador do conjunto for referenciado, o estado de seleção
atual está implícito.
Essa tabela mostra alguns exemplos com modificadores.
Modificadores
Exemplo Resultado
sum({$<OrderDate = Retorna as vendas da seleção atual onde OrderDate =
DeliveryDate>} Sales) DeliveryDate.
sum({1<Region = {US}>} Retorna as vendas da região dos EUA, desconsiderando a
Sales) seleção atual.
sum({$<Region = >} Sales) Retorna as vendas da seleção, mas com a seleção em 'Region'
removida.
sum({<Region = >} Sales) Retorna o mesmo como o exemplo acima. Quando o
conjunto para modificar for omitido, $ é adotado.
sum({$<Year={2000}, Retorna as vendas da seleção atual, mas com novas seleções
Region={“U*”}>} Sales) ambas em 'Year' e em 'Region'.
Sintaxe para conjuntos
A sintaxe completa (sem incluir o uso opcional dos parênteses padrão para definir a
precedência) é descrita usando o Formalismo Backus-Naur:
set_expression ::= { set_entity { set_operator
set_entity } }
set_entity ::= set_identifier [ set_modifier ]
set_identifier ::= 1 | $ | $N | $_N | bookmark_id |
bookmark_name
set_operator ::= + | - | * | /
set_modifier ::= < field_selection {, field_selection } >
field_selection ::= field_name [ = | += | –= | *= | /= ]
element_set_expression
element_set_expression ::= element_set { set_operator
element_set }
element_set ::= [ field_name ] | { element_list } |
element_function
element_list ::= element { , element }
element_function ::= ( P | E ) ( [ set_expression ]
[ field_name ] )
element ::= field_value | " search_mask "
Modificadores de conjunto
Um conjunto pode ser modificado por uma seleção adicional ou alterada. 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 sinais de maior e menor: <
>. Por exemplo: <Year={2007,2008},Region={US}>. Os nomes e os valores de campo
podem normalmente estar entre aspas, por exemplo:<[Sales Region]={’West
coast’, ’South America’}>.
Um modificador de conjunto modifica a seleção do identificador do conjunto
anterior. Se nenhum identificador do conjunto for referenciado, o estado de seleção
atual está implícito.
Existem várias formas de definir a seleção:
Baseado em outro campo
Baseado em conjuntos de elementos (uma lista de valores de campo no
modificador)
Exclusão forçada
Esses métodos são descritos nas sub-seções a seguir.
Baseado em outro campo
Um caso simples é uma seleção baseada nos valores selecionados de outro campo,
por exemplo <OrderDate = DeliveryDate>. Esse modificador usará os valores
selecionados de DeliveryDate e os aplicará como uma seleção em OrderDate. Se
houver muitos valores diferentes – mais de duzentos – esta operação ocupará muito
a CPU e deverá ser evitada.
Com base em conjuntos de elementos
O exemplo mais comum de uma expressão de conjunto é aquele que se baseia em
uma lista de valores de campos entre chaves. Os valores são separados por vírgulas,
por exemplo, <Year = {2007, 2008}>. As chaves aqui definem um conjunto de
elementos, em que os elementos podem ser valores de campo explícitos ou
pesquisas de valores de campo.
A menos que os valores listados contenham espaços em branco ou caracteres
especiais, as aspas não são necessárias. Os valores listados simplesmente serão
correspondidos com os valores de campos. Essa comparação não diferencia
maiúsculas e minúsculas.
Se os valores listados contiverem espaços em branco ou caracteres especiais, ou se
você quiser usar caracteres curinga, será necessário colocar esses valores entre
aspas. Aspas simples devem ser usadas quando os valores listados são valores de
campos explícitos. Em seguida, são feitas correspondências que diferenciam
maiúsculas e minúsculas entre os valores listados e os valores de campos
individuais.
Aspas duplas devem ser usadas para pesquisas, ou seja, cadeias que contêm
caracteres curinga ou que começam com um operador relacional ou um sinal de
igual. Por exemplo, <Ingredient = {"*Garlic*"}> selecionará todos os ingredientes que
contenham a sequência "Garlic". Aspas duplas podem ser substituídas por colchetes,
por exemplo, <Ingredient = {[*Garlic*]}>. Aspas duplas também podem ser
substituídas por acentos graves, por exemplo, <Ingredient = {`*Garlic*`}>. As
pesquisas diferenciam maiúsculas e minúsculas.
Nota:
Nas versões anteriores do Qlik Sense, não havia distinção entre aspas simples e
aspas duplas, e todas as sequências entre aspas eram tratadas como pesquisas. Para
manter a compatibilidade com versões anteriores, os aplicativos criados com
versões mais antigas do Qlik Sense continuarão a funcionar como faziam em versões
anteriores. Os aplicativos criados com o Qlik Sense November 2017 ou versões
posteriores respeitarão a diferença entre os dois tipos de aspas.
Exclusão forçada
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.
Nota:Apenas a API do mecanismo Qlik oferece suporte para o modo AND.
Examples and results:
Exemplos Resultados
sum( {1<Region= {USA} Retorna as vendas da região USA, desconsiderando a seleção atual.
>} Sales )
sum( {$<Region = >} Retorna as vendas da seleção atual, mas com a seleção em 'Region'
Sales ) removida.
sum( {<Region = >} Retorna o mesmo como o exemplo imediatamente acima. Quando
Sales ) o conjunto para modificar for omitido, $ é adotado.
Nota:A sintaxe nos dois exemplos anteriores é interpretada como
“nenhuma seleção” em in 'Region', ou seja, todas as regiões com outras
seleções serão possíveis. Isso não é equivalente à sintaxe <Region =
{}> (nem a qualquer outro texto à direita do sinal de igual
Exemplos Resultados
implicitamente resultando em um conjunto de elementos vazio) que é
interpretada como nenhuma região.
sum( {$<Year = {2000}, retorna as vendas da seleção atual, mas com as novas seleções em
Region = {US, SE, DE, 'Year' e em 'Region'.
UK, FR}>} Sales )
sum( {$<~Ingredient = O campo Ingredient está no modo AND.
{“*garlic*”}>} Sales ) Retorna as vendas da seleção atual, mas com uma exclusão
forçada de todos os Ingredientes que contêm a palavra 'garlic'.
sum( {$<Year = {“2*”}>} Retorna as vendas da seleção atual, mas com todos os anos que
Sales ) começam com o número "2", ou seja, do ano 2000 em diante,
selecionados no campo 'Year'.
sum( {$<Year = Conforme a sintaxe acima, mas a década de 1980 também está incluída
{“2*”,”198*”}>} Sales ) na seleção.
sum( {$<Year = Retorna as vendas para as seleções atuais, mas com uma pesquisa
{“>1978<2004”}>} numérica usada para o escopo do intervalo de anos para somar as
Sales ) vendas.
Modificadores de conjunto com operadores de
conjunto
A seleção dentro de um campo pode ser definida usando-se os operadores de
conjunto trabalhando em conjuntos de elementos diferentes. Por exemplo, o
modificador <Year = {"20*", 1997} - {2000}> selecionará todos os anos iniciados por
“20”, além de “1997”, exceto “2000”.
Examples and results:
Exemplos Resultados
sum( {$<Product = Retorna as vendas da seleção atual, mas com o produto
Product + {OurProduct1} “OurProduct1” adicionado à lista de produtos selecionados e
– {OurProduct2} >} Sales ) “OurProduct2” removido da lista de produtos selecionados.
sum( {$<Year = Year + Retorna as vendas da seleção atual, mas com seleções
({“20*”,1997} – {2000}) >} adicionais no campo “Year”: 1997 e todos os anos que começam
Sales ) 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( {$<Year = (Year + Retorna quase o mesmo resultado acima, mas aqui o ano 2000
{“20*”,1997}) – {2000} >} será excluído, mesmo se estivesse inicialmente incluído na
Sales ) 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( {$<Year = {“*”} – Retorna as vendas da seleção atual, mas com uma nova seleção
{2000}, Product = em “Year”: todos os anos exceto o ano 2000; e somente para
{“*bearing*”} >} Sales ) produtos que contêm a palavra ‘suporte'.
Modificadores de conjunto usando atribuições
com operadores de conjunto implícitos
Essa notação define novas seleções, desconsiderando a seleção atual no campo. No
entanto, se desejar basear a sua seleção atual no campo e adicionar valores de
campo, você pode, por exemplo, definir um modificador <Year = Year + {2007, 2008}>.
Uma forma mais curta e equivalente de escrever isso é <Year += {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 “/=”.
Examples and results:
Exemplos Resultados
sum( {$<Product += Retorna as vendas da seleção atual, mas usando uma união
{OurProduct1, implícita para adicionar os produtos 'OurProduct1' e
OurProduct2} >} Sales ) 'OurProduct2' à lista de produtos selecionados.
sum( {$<Year += Retorna as vendas da seleção atual, mas usando uma união
{“20*”,1997} – {2000} >} implícita para adicionar um número de anos à seleção: 1997 e
Sales ) 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. Igual a <Year=Year +
({“20*”,1997}–{2000})>.
sum( {$<Product *= Retorna as vendas da seleção atual, mas somente para a inserção
{OurProduct1} >} Sales ) dos produtos atualmente selecionados e do
produto OurProduct1.
Modificadores de conjunto com pesquisas
avançadas
As pesquisas avançadas que usam caracteres curingas e agregações podem ser
usadas para definição de conjuntos.
Examples and results:
Exemplos Resultados
sum( {$–1<Product = {“*Internal*”, Retorna as vendas da seleção atual, excluindo as
“*Domestic*”}>} Sales ) transações que pertencem a produtos com a palavra
‘Internal’ ou ‘Domestic’ no nome do produto.
sum( {$<Customer = Retorna as vendas da seleção atual, mas com uma nova
{“=Sum({1<Year = {2007}>} seleção no campo 'Customer': apenas os clientes que,
Sales ) > 1000000”}>} Sales ) em 2007, apresentaram um total de vendas de mais de
1.000.000.
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.
Examples and results:
Exemplos Resultados
sum( {$<Year = {$ Retorna as vendas do ano anterior em relação à seleção atual. Aqui,
(#vLastYear)}>} Sales ) uma variável vLastYearcontendo o ano relevante é usada em uma
expansão de sinal de dólar.
sum( {$<Year = {$ Retorna as vendas do ano anterior em relação à seleção atual. Aqui,
(#=Only(Year)-1)}>} uma expansão de sinal de dólar é usada para calcular o ano anteri
Sales )
Modificadores de conjunto com definições de
valor de campo implícitas
A seguir, é descrito como definir um conjunto de valores de campo usando 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} Customer). Essas funções não podem ser
usadas em outras expressões.
Nota:As funções de elemento, P() e E(), só podem ser usadas em um conjunto natural. Ou
seja, um conjunto de registos que podem ser definidas por uma seleção simples. Por
exemplo, o conjunto fornecido por {1-$} não pode ser sempre definido por seleção e,
portanto, não é um conjunto natural. O uso dessas funções em conjuntos não naturais pode
gerar resultados inesperados.
Examples and results:
Exemplos Resultados
sum( {$<Customer = Retorna as vendas da seleção atual, mas somente os
P({1<Product={‘Shoe’}>} clientes que já compraram o produto ‘Shoe’. Aqui, a função
Customer)>} Sales ) de elemento P( ) retorna uma lista de clientes possíveis;
aqueles decorrentes da seleção ‘Shoe’ no campo Product.
sum( {$<Customer = O mesmo que o anterior. Se o campo na função de elemento
P({1<Product={‘Shoe’}>})>} for omitido, a função retornará os valores possíveis do
Sales ) campo especificado na atribuição externa.
sum( {$<Customer = Retorna as vendas da seleção atual, mas somente os
P({1<Product={‘Shoe’}>} clientes que já forneceram o produto ‘Shoe’. Aqui, a função
Supplier)>} Sales ) de elemento P( ) retorna uma lista de fornecedores
possíveis; aqueles decorrentes da seleção ‘Shoe’ no
campo Product. Assim, a lista de fornecedores é usada como
uma seleção no campo Customer.
sum( {$<Customer = Retorna as vendas da seleção atual, mas somente os
E({1<Product={‘Shoe’}>})>} clientes que nunca compraram o produto ‘Shoe’. Aqui, a
Sales ) função de elemento E( ) retorna a lista de clientes excluídos;
aqueles excluídos pela seleção ‘Shoe’ no campo Product.