Plug-in pivot

Ruota una tabella trasformando i valori univoci da una colonna nella tabella di input in più colonne della tabella di output ed esegue aggregazioni in base alle esigenze in tutti i valori di colonna rimanenti che verranno visualizzati nell'output finale.

Nota

Se outputSchema non è specificato, lo schema di output del pivot plug-in è basato sui dati di input. Pertanto, più esecuzioni del plug-in usando input dati diversi, possono produrre uno schema di output diverso. Ciò significa anche che la query che fa riferimento a colonne non compresse può diventare "interrotta" in qualsiasi momento. Per questo motivo, non è consigliabile usare questo plug-in per i processi di automazione senza specificare la funzione OutputSchema.

Sintassi

T | evaluate pivot(pivotColumn[, aggregazioneFunction] [,column1[,column2 ... ]]) [:OutputSchema]

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
pivotColumn string ✔️ Colonna da ruotare. Ogni valore univoco di questa colonna sarà una colonna nella tabella di output.
aggregazioneFunction string Funzione di aggregazione usata per aggregare più righe nella tabella di input a una singola riga nella tabella di output. Funzioni attualmente supportate: min()take_any()dcount()avg()stdev()sum()max()make_list()make_bag()variance()make_set(), . count() Il valore predefinito è count().
column1, column2, ... string Nome di colonna o elenco delimitato da virgole di nomi di colonna. La tabella di output conterrà una colonna aggiuntiva per ogni colonna specificata. L'impostazione predefinita è tutte le colonne diverse dalla colonna pivoted e dalla colonna di aggregazione.
OutputSchema Nomi e tipi per le colonne previste dell'output del pivot plug-in.

Sintassi: (ColumnName:ColumnType [, ...] )

Se si specifica lo schema previsto, l'esecuzione di query non deve prima eseguire la query effettiva per esplorare lo schema. Viene generato un errore se lo schema di runtime non corrisponde allo schema OutputSchema .

Restituisce

Pivot restituisce la tabella ruotata con colonne specificate (column1, column2, ...) e tutti i valori univoci delle colonne pivot. Ogni cella per le colonne pivoted conterrà il calcolo delle funzioni di aggregazione.

Esempio

Pivot per una colonna

Per ogni oggetto EventType e State a partire da 'AL', contare il numero di eventi di questo tipo in questo stato.

StormEvents
| project State, EventType
| where State startswith "AL"
| where EventType has "Wind"
| evaluate pivot(State)

Output

EventType ALABAMA ALASKA
Vento di tempesta 352 1
Vento forte 0 95
Freddo estremo/vento freddo 0 10
Vento forte 22 0

Pivot per una colonna con funzione di aggregazione

Per ogni EventType e Stato a partire da 'AR', visualizzare il numero totale di morti dirette.

StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect))

Output

EventType ARKANSAS ARIZONA
Pioggia intensa 1 0
Vento di tempesta 1 0
Lightning 0 1
Piena improvvisa 0 6
Vento forte 1 0
Calore 3 0

Pivot per una colonna con funzione di aggregazione e una singola colonna aggiuntiva

Il risultato è identico all'esempio precedente.

StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType)

Output

EventType ARKANSAS ARIZONA
Pioggia intensa 1 0
Vento di tempesta 1 0
Lightning 0 1
Piena improvvisa 0 6
Vento forte 1 0
Calore 3 0

Specificare la colonna pivoted, la funzione di aggregazione e più colonne aggiuntive

Per ogni tipo di evento, origine e stato, sommare il numero di morti dirette.

StormEvents
| where State startswith "AR"
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType, Source)

Output

EventType Source ARKANSAS ARIZONA
Pioggia intensa Responsabile della gestione emergenze 1 0
Vento di tempesta Responsabile della gestione emergenze 1 0
Lightning Giornale 0 1
Piena improvvisa Trained Spotter 0 2
Piena improvvisa Trasmissione multimediale 0 3
Piena improvvisa Giornale 0 1
Vento forte Applicazione della legge 1 0
Calore Giornale 3 0

Pivot con uno schema di output definito da query

Nell'esempio seguente vengono selezionate colonne specifiche nella tabella StormEvents. Usa una definizione di schema esplicita che consente di valutare varie ottimizzazioni prima di eseguire la query effettiva.

StormEvents
| project State, EventType
| where EventType has "Wind"
| evaluate pivot(State): (EventType:string, ALABAMA:long, ALASKA:long)

Output

EventType ALABAMA ALASKA
Vento di tempesta 352 1
Vento forte 0 95
Vento di temporale marina 0 0
Vento forte 22 0
Freddo estremo/vento freddo 0 10
Freddo/vento freddo 0 0
Vento forte marina 0 0
Vento alto marina 0 0