Упражнение. Изменение порядка возвращаемых данных с помощью оператора sort

Завершено

Напомним, что в примере с видами штормовых ветров вы сузили выборку по диапазону времени, ключевым словам и значениям в определенном столбце. Теперь нужно упорядочить эти результаты, чтобы первыми отображались события с максимально разрушительными последствиями.

Использовать оператор 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. Обратите внимание, что вы получили таблицу с теми же строками, что и в предыдущем запросе, но теперь она отсортирована в другом порядке. Сначала проведена сортировка по названию штата, начиная с Алабамы. В результатах по штату Алабама значения ущерба, причиненного имуществу, отсортированы по убыванию.

Использовать оператор 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.