練習:使用排序運算子重新排序傳回的資料

已完成

回想一下,在暴風雨事件範例中,您已依照時間範圍、關鍵字及特定資料行中的值,將事件範圍縮小。 現在您想要整理這些結果,以便先看到最具破壞力的暴風雨事件。

使用 sort 運算子

未排序的資料很難理解。 接下來要規劃呈現結果的順序,讓資料更簡單易懂。 因為想知道哪些事件造成最嚴重的財物損失,所以依欄位 DamageProperty 來排序結果。

  1. 執行下列查詢:

    執行查詢

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | sort by DamageProperty desc
    
  2. 您應該會取得如下圖所示的結果:

    Screenshot of query results for the sort operator.

  3. 請注意,本結果會從最高的財物損失額開始呈現,並逐步減少。 查詢預設會以遞減順序來排序,因此您可以省略 desc 並取得相同結果。 州和事件種類不會以任何方式排序。

在不只一個運算式上排序

每個地區都有獨特的天氣模式,因此您想知道在各州何種事件會造成最大損失。 為了找出此問題的解答,您要先排序州名,再排序各州的損失額。 運算子 sort 預設會以遞減順序來排序,因此要使用 asc 來表示您想要以遞增順序來排序的州名。

  1. 執行下列查詢:

    執行查詢

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | sort by State asc, DamageProperty
    
  2. 您應該會取得如下圖所示的結果:

    Screenshot of query results for two sort operators.

  3. 可注意到您所取得的資料表的資料列與上次查詢相同,但以不同順序來排序。 接著會先依州名排序,從 Alabama (阿拉巴馬州)開始。 在阿拉巴馬州的結果中,財務損失額依遞減順序來排序。

使用 top 運算子

您可以使用 top 運算子來顯示特定數目的前幾項結果,而非排序和瀏覽特定數量的前幾項結果。 事實上,top 運算子效能較佳,因此只想要特定數目的前幾項結果時,這是較為推薦的選擇。

  1. 執行下列查詢:

    執行查詢

    StormEvents
    | where State == "FLORIDA"
    | top 10 by DamageProperty
    | project State, EventType, DamageProperty
    
  2. 您應該會取得如下圖所示的結果:

    Screenshot of query results for the top operator.