練習 - 使用查閱運算子合併資料表結果
在先前的練習中,您已使用 join
運算子來尋找每個產品的總銷售額。 在此練習中,您會使用 lookup
運算子來尋找每個國家/地區的總銷售額。
使用 lookup
運算子
您的銷售小組想要知道公司在每個國家/地區的總銷售額。 您可以使用 join
運算子來取得客戶和產品資訊。 不過,當您使用 lookup
運算子來取得這項資訊時,這種查詢的效能最佳。
回想一下,lookup
運算子會使用維度資料表中的資料來擴充事實資料表。 這有點像是讀書 (事實資料表),並且在字典 (維度資料表) 中查閱未知字組。
針對此查詢,您會從銷售事實資料表開始,並使用 lookup
運算子來取得客戶資料,並將它新增至結果資料表。
在下列程序中,您會分階段建置查詢,讓您更瞭解使用 lookup
運算子的結果。
執行下列查詢,從銷售事實資料表和客戶資料表取得 10 個相符的任意資料列。
SalesFact | lookup Customers on CustomerKey | take 10
查看結果產生的清單。 請注意,結果資料表包含銷售事實資料表中的資料行,後面接著來自客戶資料表的相符資料行。
執行下列查詢以取得每個國家/地區的總銷售額。
SalesFact | lookup Customers on CustomerKey | summarize TotalSales = count() by RegionCountryName | order by TotalSales desc
結果應該如下圖所示:
查看結果產生的清單。 請注意,最高的銷售量位於美國。 請嘗試修改查詢,以依州顯示美國的總銷售額。
在上一個單元中,您使用了 rightouterjoin
以取得依產品類別的總銷售額。 執行該查詢需要 0.834 秒。 現在,撰寫查詢,以使用 lookup
運算子取得相同的結果,然後比較執行時間。
執行下列查詢。
SalesFact | lookup Products on ProductKey | summarize TotalSales = count() by ProductCategoryName | order by TotalSales desc
結果應該如下圖所示:
請注意,您會得到相同的結果,但執行時間是 0.398 秒。 執行時間較快是因為
lookup
運算子已針對這種類型的查詢最佳化。