Esercizio - Combinare i risultati delle tabelle usando l'operatore lookup
Nell'esercizio precedente è stato usato l'operatore join
per trovare il totale delle vendite per prodotto. In questo esercizio si userà l'operatore lookup
per trovare il totale delle vendite per paese/area geografica.
Usando l'operatore lookup
.
Il team di vendita vuole conoscere il totale delle vendite della società per paese/area geografica. È possibile usare un operatore join
per ottenere le informazioni su clienti e prodotti. Tuttavia, questo tipo di query funziona meglio quando si usa l'operatore lookup
per ottenere queste informazioni.
Si ricordi che l'operatore lookup
arricchisce una tabella dei fatti con i dati di una tabella delle dimensioni. È un po' come leggere un libro (tabella dei fatti) e cercare parole sconosciute in un dizionario (tabella delle dimensioni).
Per questa query si inizia con la tabella SalesFact e si usa l'operatore lookup
per ottenere i dati di Customer e aggiungerli alla tabella risultante.
Nella procedura seguente, si compila la query in più fasi per ottenere una migliore comprensione del risultato dell'uso dell'operatore lookup
.
Eseguire la query seguente per ottenere 10 righe arbitrarie corrispondenti dalla tabella SalesFact e della tabella Customers.
SalesFact | lookup Customers on CustomerKey | take 10
Esaminare l'elenco risultante. Si noti che la tabella risultante contiene colonne della tabella SalesFact, seguite dalle colonne corrispondenti della tabella Customers.
Eseguire la query seguente per ottenere il totale delle vendite per paese/area geografica.
SalesFact | lookup Customers on CustomerKey | summarize TotalSales = count() by RegionCountryName | order by TotalSales desc
I risultati dovrebbero essere simili a quelli nell'immagine seguente:
Esaminare l'elenco risultante. Si noti che le vendite principali sono negli Stati Uniti. Provare a modificare la query in modo da visualizzare il totale delle vendite negli Stati Uniti per stato.
Nell'unità precedente è stato usato un rightouter join
per ottenere le vendite totali per categoria di prodotti. L'esecuzione della query ha richiesto 0,834 secondi. Scrivere ora una query per ottenere lo stesso risultato usando l'operatore lookup
e quindi confrontare il tempo di esecuzione.
Eseguire la query seguente.
SalesFact | lookup Products on ProductKey | summarize TotalSales = count() by ProductCategoryName | order by TotalSales desc
I risultati dovrebbero essere simili a quelli nell'immagine seguente:
Si noti che si ottengono gli stessi risultati, ma il tempo di esecuzione è pari a 0,398 secondi. Il minor tempo di esecuzione è dovuto al fatto che l'operatore
lookup
è ottimizzato per questo tipo di query.