Condividi tramite


array_sort_desc()

Si applica a: ✅Microsoft Fabric

Riceve una o più matrici. Ordina la prima matrice in ordine decrescente. Ordina le matrici rimanenti in modo che corrispondano alla prima matrice riordinata.

Sintassi

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

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

Se non viene specificato nulls_last , viene usato un valore predefinito di true .

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
matrice1... arrayN dynamic ✔️ Matrice o elenco di matrici da ordinare.
nulls_last bool Determina se nulldeve essere l'ultimo.

Valori restituiti

Restituisce lo stesso numero di matrici dell'input, con la prima matrice ordinata in ordine crescente e le matrici rimanenti ordinate in modo che corrispondano alla prima matrice riordinata.

null viene restituito per ogni matrice diversa dalla prima.

Una matrice che contiene elementi di tipi diversi viene ordinata nell'ordine seguente:

  • Elementi numerici, datetime, e timespan
  • Elementi stringa
  • Elementi GUID
  • Tutti gli altri elementi

Esempi

Negli esempi di questa sezione viene illustrato come usare la sintassi per iniziare.

Ordinare due matrici

Nell'esempio seguente viene ordinata la matrice iniziale, array1, in ordine decrescente. Ordina quindi array2 in modo che corrisponda al nuovo ordine di array1.

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

Output

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

Nota

I nomi delle colonne di output vengono generati automaticamente, in base agli argomenti della funzione. Per assegnare nomi diversi alle colonne di output, usare la sintassi seguente: ... | extend (out1, out2) = array_sort_desc(array1,array2).

Ordinare le sottostringhe

Nell'esempio seguente viene ordinato un elenco di nomi in ordine decrescente. Salva un elenco di nomi in una variabile, Names, che viene quindi suddiviso in una matrice e ordinato in ordine decrescente. La query restituisce i nomi in ordine decrescente.

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

Output

result
Paul,Kayo,John,Jane

Combinare riepilogo e array_sort_desc

L'esempio seguente usa l'operatore summarize e la funzione array_sort_asc per organizzare e ordinare i comandi in base all'utente in ordine cronologico decrescente.

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]

Output

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

Nota

Se i dati possono contenere valori null, usare make_list_with_nulls anziché make_list.

Controllare la posizione dei valori di null

Per impostazione predefinita, null i valori vengono inseriti nella matrice ordinata. Tuttavia, è possibile controllarlo in modo esplicito aggiungendo un bool valore come ultimo argomento a array_sort_asc().

L'esempio seguente illustra il comportamento predefinito:

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

Output

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

Nell'esempio seguente viene illustrato il comportamento non predefinito usando il parametro false, che specifica che i valori Null vengono posizionati all'inizio della matrice.

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

Output

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