Modificatori di gruppo

Un gruppo può essere modificato da una selezione modificata o aggiunta. Tale modifica può essere scritta nell'espressione di gruppo.

Il modificatore consiste in uno o più nomi di campo, ognuno seguito da una selezione da operare sul campo, il tutto racchiuso fra parentesi angolari: < >. Ad esempio: <Year={2007,2008},Region={US}>. I nomi e i valori di campo possono essere racchiusi tra i delimitatori consueti: <[Sales Region]={’West coast’, ’South America’}>.

Un modificatore di gruppo modifica la selezione dell'identificatore di gruppo precedente. Se non viene fatto riferimento ad alcun identificatore di gruppo, lo stato della selezione corrente è implicito.

La selezione può essere definita in diversi modi:

  • In base a un altro campo
  • In base a set di elementi (un elenco di valori di campo nel modificatore)
  • Esclusione forzata

Questi metodi sono descritti nelle sottosezioni seguenti.

In base a un altro campo

Un caso semplice è una selezione basata sui valori selezionati di un altro campo, ad esempio <OrderDate = DeliveryDate>. Questo modificatore prenderà i valori selezionati da DeliveryDate e li applicherà come una selezione a OrderDate. Se sono presenti molti valori diversi, più di duecento, evitare di eseguire questa operazione, in quanto prevede l'uso di una quantità elevata di CPU.

In base a set di elementi

L'esempio più comune di espressione set è quello basato su un elenco di valori di campo racchiuso tra parentesi graffe. I valori sono separati da virgole, ad esempio <Year = {2007, 2008}>. Le parentesi graffe definiscono un set di elementi, che possono essere valori di campo espliciti o ricerche di valori di campo.

A meno che i valori elencati non contengano spazi vuoti o caratteri speciali, le virgolette non sono necessarie. I valori elencati verranno abbinati semplicemente ai valori di campo. Questo confronto non distingue tra maiuscole e minuscole.

Se i valori elencati contengono spazi vuoti o caratteri speciali oppure se si desidera utilizzare caratteri jolly, è necessario racchiudere i valori tra virgolette. Devono essere utilizzate virgolette singole se i valori elencati sono valori di campo espliciti. Verranno quindi effettuati abbinamenti che rispettano la distinzione maiuscole/minuscole tra i valori elencati e i singoli valori di campo.

Devono essere utilizzate virgolette doppie per le ricerche, ovvero per le stringhe che contengono caratteri jolly o iniziano con un operatore relazionale o un segno di uguale. Ad esempio, <Ingredient = {"*Garlic*"}> seleziona tutti gli ingredienti che contengono la stringa 'Garlic'. Le virgolette doppie possono essere sostituite con parentesi quadre, ad esempio <Ingredient = {[*Garlic*]}>. Le virgolette doppie possono anche essere sostituite con accenti gravi, ad esempio <Ingredient = {`*Garlic*`}>. Le ricerche non distinguono tra maiuscole e minuscole.

Nota:

Nelle precedenti versioni di Qlik Sense non vi era distinzione tra virgolette singole e virgolette doppie e tutte le stringhe racchiuse tra virgolette venivano trattate come ricerche. Per questione di compatibilità, le app create con le versioni precedenti di Qlik Sense continueranno a funzionare come prima. Le app create con Qlik Sense November 2017 o versioni successive rispetteranno la differenza tra i due tipi di virgolette.

Esclusione forzata

Infine, per i campi in modalità AND, è inoltre possibile eseguire un'esclusione forzata. Se si desidera forzare l'esclusione di valori di campi specifici, è necessario utilizzare "~" davanti al nome di campo.

Nota: La modalità AND è supportata solo tramite le API di Qlik Engine.

Examples and results:  

Esempi Risultati
sum( {1<Region= {USA} >} Sales ) Restituisce le vendite per la regione USA ignorando la selezione attuale.
sum( {$<Region = >} Sales ) Restituisce le vendite per la selezione attuale, da cui è però stata rimossa la selezione in 'Region'.
sum( {<Region = >} Sales )

Restituisce lo stesso risultato dell'esempio immediatamente precedente. Quando il gruppo da modificare viene omesso, viene utilizzato $.

Nota: La sintassi dei due esempi precedenti viene interpretata come "nessuna selezione" in Region', ossia saranno possibili tutte le regioni alle quali sono state assegnate altre selezioni. Non equivale alla sintassi <Region = {}> (oppure a un altro testo a destra del segno di uguale che restituisce implicitamente un gruppo di elementi vuoto), che viene interpretata come no region.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Restituisce le vendite per la selezione attuale, ma con nuove selezione sia in 'Year' che in 'Region'.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Il campo Ingredient si trova in modalità AND.

Restituisce le vendite per la selezione attuale, ma con un'esclusione forzata di tutti gli ingredienti contenenti la stringa 'garlic'.

sum( {$<Year = {“2*”}>} Sales ) Restituisce le vendite per la selezione attuale, ma con tutti gli anni che iniziano con il numero "2", probabilmente l'anno 2000 e successivi selezionati nel campo 'Year'.
sum( {$<Year = {“2*”,”198*”}>} Sales ) Restituisce lo stesso risultato riportato sopra, ma ora nella selezione vengono inclusi anche gli anni 80.
sum( {$<Year = {“>1978<2004”}>} Sales ) Restituisce le vendite per le selezioni correnti, ma utilizzando una ricerca numerica per esaminare l'intervallo degli anni ed eseguire la somma delle relative vendite.