array_sort_desc()

Recebe uma ou mais matrizes. Classifica a primeira matriz em ordem decrescente. Ordena as matrizes restantes de modo a corresponder à primeira matriz reordenada.

Syntax

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

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

Se nulls_last não for fornecido, um valor padrão de true será usado.

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
array1... arrayN dynamic ✔️ A matriz ou lista de matrizes a serem classificadas.
nulls_last bool Determina se nulls deve ser o último.

Retornos

Retorna o mesmo número de matrizes que na entrada, com a primeira matriz classificada em ordem crescente e as matrizes restantes ordenadas para corresponder à primeira matriz reordenada.

null é retornado para cada matriz que difere de comprimento do primeiro.

Se uma matriz contiver elementos de tipos diferentes, ela será classificada na seguinte ordem:

  • Elementos numéricos, datetimee timespan
  • Elementos de cadeia de caracteres
  • Elementos guid
  • Todos os outros elementos

Exemplo 1 – Classificação de duas matrizes

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

Saída

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

Observação

Os nomes das colunas de saída são gerados automaticamente, com base nos argumentos para a função . Para atribuir nomes diferentes às colunas de saída, use a seguinte sintaxe: ... | extend (out1, out2) = array_sort_desc(array1,array2)

Exemplo 2 – Classificação de subcadeias de caracteres

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

Saída

result
Ringo, Paul, John, George

Exemplo 3 – Combinando resumo e array_sort_desc

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]

Saída

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

Observação

Se os dados puderem conter null valores, use make_list_with_nulls em vez de make_list.

Exemplo 4 – Controlando o local dos null valores

Por padrão, null os valores são colocados por último na matriz classificada. No entanto, você pode controlá-lo explicitamente adicionando um bool valor como o último argumento a array_sort_desc().

Exemplo com comportamento padrão:

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

Saída

print_0
["amarelo", "verde", "azul", nulo,nulo]

Exemplo com comportamento não padrão:

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

Saída

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

Para classificar a primeira matriz em ordem crescente, use array_sort_asc().