Vai al contenuto principale Passa a contenuto complementare

Associazioni tra tabelle logiche

Un database può contenere molte tabelle. Ciascuna tabella può essere considerata un elenco di elementi; ogni record dell'elenco rappresenta un'istanza di un oggetto di qualche tipo.

Esempio:  

Se due tabelle sono elenchi di elementi differenti, ad esempio una è un elenco di clienti e l'altra un elenco di fatture, e le due tabelle hanno un campo in comune, ad esempio il codice del cliente, di solito significa che c'è una relazione tra le due tabelle. Negli strumenti di query SQL standard le due tabelle devono essere quasi sempre unite.

Le tabelle definite nello script di Qlik Sense sono denominate tabelle logiche. Qlik Sense effettua associazioni tra le tabelle basate su nomi di campo ed esegue le unioni quando viene effettuata una selezione, ad esempio la selezione di un valore di campo in una casella di filtro.

Ciò significa che un'associazione è quasi identica a un'unione. L'unica differenza è che l'unione viene eseguita quando viene eseguito lo script. La tabella logica è di solito il risultato dell'unione. L'associazione viene effettuata dopo la creazione della tabella logica. Le associazioni vengono effettuate sempre tra le tabelle logiche.

Quattro tabelle: un elenco di paesi, un elenco di clienti, un elenco di transazioni e un elenco di appartenenze, associati tra loro tramite i campi Country e CustomerID.

Four logical tables associated.

Confronto tra un'associazione di Qlik Sense e un'unione naturale esterna di SQL

Un'associazione di Qlik Sense è simile a un'unione naturale esterna di SQL. Tuttavia, l'associazione è molto più generale: un'unione esterna in SQL è di solito una proiezione a senso unico di una tabella su un'altra. Un'associazione risulta sempre in un'unione naturale esterna completa (bidirezionale).

Informazioni sulla frequenza nei campi di associazione

Esistono alcune limitazioni per l'utilizzo della maggior parte dei campi di associazione, ad esempio campi comuni tra due o più tabelle. Quando un campo è presente in più tabelle, Qlik Sense non è in grado di sapere quali tabelle utilizzare per il calcolo delle frequenze dei dati.

Qlik Sense analizza i dati per vedere se esiste un modo non ambiguo per identificare una tabella principale in cui contare (talvolta esiste), ma nella maggior parte dei casi il programma può effettuare solo una stima. Poiché una stima errata potrebbe comportare conseguenze gravi (Qlik Sense potrebbe eseguire calcoli errati), il programma è stato progettato per non consentire operazioni specifiche se l'interpretazione dei dati risulta ambigua per i campi di associazione.

Limitazioni per i campi di associazione

  1. Non è possibile visualizzare le informazioni sulla frequenza in una casella di filtro che mostra il campo.
  2. Le caselle Statistica del campo indicano n/a per la maggior parte delle entità statistiche.
  3. Nei grafici non è possibile creare espressioni contenenti funzioni che dipendono dalle informazioni sulla frequenza (ad esempio le funzioni Sum, Count e Average) sul campo, a meno che il modificatore Distinct non sia attivato. Al termine di ciascuna operazione di ricarica, Qlik Sense esegue un'analisi di tutte le espressioni grafiche per rilevare eventuali ambiguità risultanti dalle modifiche apportate alle strutture dei dati. Se vengono trovate espressioni ambigue, viene visualizzata una finestra di dialogo di avviso e l'espressione viene disattivata. Non sarà possibile attivare l'espressione finché il problema non viene risolto. Se viene attivato un file di log, tutte le espressioni ambigue vengono elencate nel registro.

Soluzione

Esiste un modo semplice di superare queste limitazioni. Caricare il campo un'altra volta con un nuovo nome dalla tabella in cui devono essere effettuati i conteggi della frequenza. Quindi, utilizzare il nuovo campo per una casella di filtro con la frequenza, per una casella statistica o per i calcoli nei grafici.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!