Partilhar via


array_sort_asc()

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Recebe uma ou mais matrizes. Classifica a primeira matriz em ordem crescente. Ordena que as matrizes restantes correspondam à primeira matriz reordenada.

Sintaxe

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

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

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessário Descrição
matriz1... arrayN dynamic ✔️ A matriz ou lista de matrizes a serem classificadas.
nulls_last bool Determina se nulls deve ser o último.

Devoluções

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 em comprimento da primeira.

Uma matriz que contém elementos de diferentes tipos, é classificada na seguinte ordem:

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

Exemplos

Os exemplos nesta seção mostram como usar a sintaxe para ajudá-lo a começar.

Classificar duas matrizes

O exemplo a seguir classifica a matriz inicial, array1, em ordem crescente. Em seguida, classifica array2 para corresponder à nova ordem de array1.

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

Output

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

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_asc(array1,array2).

Classificar substrings

O exemplo a seguir classifica uma lista de nomes em ordem crescente. Ele salva uma lista de nomes em uma variável, Names, que é então dividida em uma matriz e classificada em ordem crescente. A consulta retorna os nomes em ordem crescente.

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

Output

Resultado
Jane, John, Kao, Paul

Combinar resumo e array_sort_asc

O exemplo a seguir usa o operador summarize e a função array_sort_asc para organizar e classificar comandos por usuário em ordem cronológica.

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]

Output

user_id commands_in_chronological_order
utilizador1 [
"ls",
"MKDIR",
"chmod",
"dir",
"PcD",
"RM"
]
utilizador2 [
"RM",
"PcD"
]

Observação

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

Controlar a localização dos valores de null

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

O exemplo a seguir mostra o comportamento padrão:

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

Output

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

O exemplo a seguir mostra o comportamento não padrão usando o parâmetro false, que especifica que os nulos são colocados no início da matriz.

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

Output

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