array_sort_asc()

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

Синтаксис

array_sort_asc(array1[, ..., arrayN][,nulls_last])

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

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

Параметры

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

Возвращаемое значение

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

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

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

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

Пример 1. Сортировка двух массивов

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

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

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

Примечание

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

Пример 2. Сортировка подстрок

let Names = "John,Paul,George,Ringo";
let SortedNames = strcat_array(array_sort_asc(split(Names, ",")), ",");
print result = SortedNames

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

набор по
Джордж, Джон, Пол, Ринго

Пример 3. Объединение суммирования и 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_asc(timestamps, commands)[1]

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

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

Примечание

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

Пример 4. Управление расположением значений null

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

Пример с поведением по умолчанию:

print array_sort_asc(dynamic([null,"blue","yellow","green",null]))

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

print_0
["синий","зеленый","желтый",null,null]

Пример с поведением, не используемым по умолчанию:

print array_sort_asc(dynamic([null,"blue","yellow","green",null]), false)

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

print_0
[null,null,"blue","green","yellow"]

Чтобы отсортировать первый массив в порядке убывания, используйте array_sort_desc().