練習 - 使用查閱運算子合併資料表結果

已完成

在先前的練習中,您已使用 join 運算子來尋找每個產品的總銷售額。 在此練習中,您會使用 lookup 運算子來尋找每個國家/地區的總銷售額。

使用 lookup 運算子

您的銷售小組想要知道公司在每個國家/地區的總銷售額。 您可以使用 join 運算子來取得客戶和產品資訊。 不過,當您使用 lookup 運算子來取得這項資訊時,這種查詢的效能最佳。

回想一下,lookup 運算子會使用維度資料表中的資料來擴充事實資料表。 這有點像是讀書 (事實資料表),並且在字典 (維度資料表) 中查閱未知字組。

針對此查詢,您會從銷售事實資料表開始,並使用 lookup 運算子來取得客戶資料,並將它新增至結果資料表。

在下列程序中,您會分階段建置查詢,讓您更瞭解使用 lookup 運算子的結果。

  1. 執行下列查詢,從銷售事實資料表和客戶資料表取得 10 個相符的任意資料列。

    執行查詢

    SalesFact
    | lookup Customers on CustomerKey
    | take 10
    

    查看結果產生的清單。 請注意,結果資料表包含銷售事實資料表中的資料行,後面接著來自客戶資料表的相符資料行。

  2. 執行下列查詢以取得每個國家/地區的總銷售額。

    執行查詢

    SalesFact
    | lookup Customers on CustomerKey
    | summarize TotalSales = count() by RegionCountryName
    | order by TotalSales desc
    

    結果應該如下圖所示:

    螢幕擷取畫面顯示查閱運算子,以及每個國家/地區的總銷售額和結果。

  3. 查看結果產生的清單。 請注意,最高的銷售量位於美國。 請嘗試修改查詢,以依州顯示美國的總銷售額。

在上一個單元中,您使用了 rightouterjoin 以取得依產品類別的總銷售額。 執行該查詢需要 0.834 秒。 現在,撰寫查詢,以使用 lookup 運算子取得相同的結果,然後比較執行時間。

  1. 執行下列查詢。

    執行查詢

    SalesFact
    | lookup Products on ProductKey
    | summarize TotalSales = count() by ProductCategoryName
    | order by TotalSales desc
    

    結果應該如下圖所示:

    螢幕擷取畫面顯示查閱運算子,以及每個產品的總銷售額查詢和結果。

    請注意,您會得到相同的結果,但執行時間是 0.398 秒。 執行時間較快是因為 lookup 運算子已針對這種類型的查詢最佳化。