pivot, plug-in

Effectue une rotation d’une table en transformant les valeurs uniques d’une colonne de la table d’entrée en plusieurs colonnes dans la table de sortie et effectue les agrégations nécessaires sur les valeurs de colonne restantes qui apparaîtront dans la sortie finale.

Notes

Si outputSchema n’est pas spécifié, le schéma de sortie du pivot plug-in est basé sur les données d’entrée. Par conséquent, plusieurs exécutions du plug-in à l’aide d’entrées de données différentes peuvent produire un schéma de sortie différent. Cela signifie également que la requête qui fait référence à des colonnes décompressées peut devenir « rompue » à tout moment. Pour cette raison, nous vous déconseillons d’utiliser ce plug-in pour les travaux Automation sans spécifier la fonction OutputSchema.

Syntax

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

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
pivotColumn string ✔️ Colonne à faire pivoter. Chaque valeur unique de cette colonne sera une colonne dans la table de sortie.
aggregationFunction string Fonction d’agrégation utilisée pour agréger plusieurs lignes de la table d’entrée en une seule ligne dans la table de sortie. Fonctions actuellement prises en charge : min(), max(), take_any(), avg()stdev()sum()dcount()variance(), make_list(), , make_bag(), . count()make_set() Par défaut, il s’agit de count().
column1, column2, ... string Nom de colonne ou liste séparée par des virgules de noms de colonnes. La table de sortie contient une colonne supplémentaire pour chaque colonne spécifiée. La valeur par défaut est toutes les colonnes autres que la colonne pivotée et la colonne d’agrégation.
OutputSchema Noms et types pour les colonnes attendues de la sortie du pivot plug-in.

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

La spécification du schéma attendu optimise l’exécution de la requête en n’ayant pas à exécuter d’abord la requête réelle pour explorer le schéma. Une erreur est générée si le schéma d’exécution ne correspond pas au schéma OutputSchema .

Retours

Pivot retourne la table pivotée avec des colonnes spécifiées (column1, column2, ...) plus toutes les valeurs uniques des colonnes pivot. Chaque cellule des colonnes pivotées contiendra le calcul de la fonction d’agrégation.

Exemples

Pivoter en fonction d’une colonne

Pour chaque EventType et State commençant par « AL », comptez le nombre d’événements de ce type dans cet état.

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

Sortie

Type d’événement ALABAMA ALASKA
Vent d’orage 352 1
Vent fort 0 95
Froid extrême/froid éolien 0 10
Vent fort 22 0

Pivoter d’une colonne avec la fonction d’agrégation

Pour chaque EventType et State commençant par « AR », affichez le nombre total de décès directs.

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

Sortie

Type d’événement ARKANSAS ARIZONA
Fortes précipitations 1 0
Vent d’orage 1 0
Lightning 0 1
Crue soudaine 0 6
Vent fort 1 0
Chauffage 3 0

Pivoter à l’aide d’une colonne avec une fonction d’agrégation et une seule colonne supplémentaire

Le résultat est identique à l’exemple précédent.

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

Sortie

Type d’événement ARKANSAS ARIZONA
Fortes précipitations 1 0
Vent d’orage 1 0
Lightning 0 1
Crue soudaine 0 6
Vent fort 1 0
Chauffage 3 0

Spécifier la colonne pivotée, la fonction d’agrégation et plusieurs colonnes supplémentaires

Pour chaque type d’événement, source et état, additionnez le nombre de décès directs.

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

Sortie

Type d’événement Source ARKANSAS ARIZONA
Fortes précipitations Gestionnaire des urgences 1 0
Vent d’orage Gestionnaire des urgences 1 0
Lightning Journal 0 1
Crue soudaine Observateur chevronné 0 2
Crue soudaine Média de diffusion 0 3
Crue soudaine Journal 0 1
Vent fort Respect des lois 1 0
Chauffage Journal 3 0

Pivot avec un schéma de sortie défini par la requête

L’exemple suivant sélectionne des colonnes spécifiques dans la table StormEvents. Il utilise une définition de schéma explicite qui permet d’évaluer diverses optimisations avant d’exécuter la requête réelle.

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

Sortie

Type d’événement ALABAMA ALASKA
Vent d’orage 352 1
Vent fort 0 95
Vent d’orage marin 0 0
Vent fort 22 0
Froid extrême/froid éolien 0 10
Froid/froid/froid 0 0
Vent fort marin 0 0
Grand vent marin 0 0