Поделиться через


array_sort_desc() (сортировка массива по убыванию)

Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Получает один или несколько массивов. Сортирует первый массив по убыванию. Упорядочивает оставшиеся массивы в соответствии с переупорядоченным первым массивом.

Синтаксис

array_sort_desc( array1[, ..., argumentN])

array_sort_desc( array1[, ..., argumentN],nulls_last)

Если nulls_last не указан, используется значение true по умолчанию.

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Тип Обязательно Описание
array1... arrayN dynamic ✔️ Массив или список массивов для сортировки.
nulls_last bool Определяет, должно ли nullбыть последнее значение.

Возвраты

Возвращает то же количество массивов, что и во входных данных, с первым массивом, отсортированный по возрастанию, и остальные массивы, упорядоченные для сопоставления переупорядоченного первого массива.

null возвращается для каждого массива, который отличается длиной от первого.

Массив, содержащий элементы разных типов, сортируется в следующем порядке:

  • Числовые, datetimeи timespan элементы
  • Строковые элементы
  • Элементы GUID
  • Все остальные элементы

Примеры

В следующем примере выполняется сортировка исходного массива array1в порядке убывания. Затем он сортирует array2 в соответствии с новым порядком array1.

let array1 = dynamic([1,3,4,5,2]);
let array2 = dynamic(["a","b","c","d","e"]);
print array_sort_desc(array1,array2)

Выходные данные

array1_sorted array2_sorted
[5,4,3,2,1] ["d","c","b","e","a"]

Примечание.

Имена выходных столбцов создаются автоматически на основе аргументов функции. Чтобы назначить разные имена выходным столбцам, используйте следующий синтаксис: ... | extend (out1, out2) = array_sort_desc(array1,array2).

В следующем примере выполняется сортировка списка имен в порядке убывания. Он сохраняет список имен в переменную, Names, которая затем разбивается на массив и отсортирована в порядке убывания. Запрос возвращает имена в порядке убывания.

let Names = "John,Paul,Jane,Kayo";
let SortedNames = strcat_array(array_sort_desc(split(Names, ",")), ",");
print result = SortedNames

Выходные данные

результат
Пол, Кайо, Джон, Джейн

В следующем примере используется оператор summarize и функция array_sort_asc для упорядочивания и сортировки команд пользователем в хронологическом порядке.

datatable(command:string, command_time:datetime, user_id:string)
[
    'chmod',   datetime(2019-07-15),   "user1",
    'ls',      datetime(2019-07-02),   "user1",
    'dir',     datetime(2019-07-22),   "user1",
    'mkdir',   datetime(2019-07-14),   "user1",
    'rm',      datetime(2019-07-27),   "user1",
    'pwd',     datetime(2019-07-25),   "user1",
    'rm',      datetime(2019-07-23),   "user2",
    'pwd',     datetime(2019-07-25),   "user2",
]
| summarize timestamps = make_list(command_time), commands = make_list(command) by user_id
| project user_id, commands_in_chronological_order = array_sort_desc(timestamps, commands)[1]

Выходные данные

user_id. commands_in_chronological_order
user1 [
"rm",
"pwd",
"dir",
"chmod",
"mkdir",
"ls"
]
user2 [
"pwd",
"rm"
]

Примечание.

Если данные могут содержать значения null, используйте make_list_with_nulls вместо make_list.

По умолчанию null значения помещаются в отсортированный массив. Однако вы можете явно контролировать его, добавив bool значение в качестве последнего аргумента array_sort_asc().

В следующем примере показано поведение по умолчанию:

print result=array_sort_desc(dynamic([null,"blue","yellow","green",null]))

Выходные данные

результат
["желтый","зеленый","синий",null,null]

В следующем примере показано поведение, отличное от false, с помощью параметра false, указывающего, что значения NULL помещаются в начало массива.

print result=array_sort_desc(dynamic([null,"blue","yellow","green",null]), false)

Выходные данные

результат
[NULL,NULL,"желтый","зеленый","синий"]