array_sort_asc()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 null s 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,
datetime
etimespan
- 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"] |