pivot-Plug-In

Rotiert eine Tabelle, indem die eindeutigen Werte aus einer Spalte in der Eingabetabelle in mehrere Spalten in der Ausgabetabelle umgewandelt werden, und aggregationen nach Bedarf für alle verbleibenden Spaltenwerte, die in der endgültigen Ausgabe angezeigt werden.

Hinweis

Wenn das OutputSchema nicht angegeben ist, basiert das Ausgabeschema des pivot Plug-Ins auf den Eingabedaten. Daher können mehrere Ausführungen des Plug-Ins mit unterschiedlichen Dateneingaben ein anderes Ausgabeschema erzeugen. Dies bedeutet auch, dass die Abfrage, die auf nicht verpackte Spalten verweist, jederzeit "unterbrochen" werden kann. Aus diesem Grund wird davon abgeraten, dieses Plug-In für Automatisierungsaufträge zu verwenden, ohne die OutputSchema-Funktion anzugeben.

Syntax

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
pivotColumn string ✔️ Die spalte, die gedreht werden soll. Jeder eindeutige Wert aus dieser Spalte ist eine Spalte in der Ausgabetabelle.
aggregationFunction string Eine Aggregationsfunktion, die zum Aggregieren mehrerer Zeilen in der Eingabetabelle zu einer einzelnen Zeile in der Ausgabetabelle verwendet wird. Derzeit unterstützte Funktionen: min(), max(), take_any(), sum(), dcount()avg(), stdev()make_set()variance()make_list()make_bag()count(). Der Standardwert lautet count().
column1, column2, ... string Ein Spaltenname oder eine durch Trennzeichen getrennte Liste von Spaltennamen. Die Ausgabetabelle enthält eine zusätzliche Spalte für jede angegebene Spalte. Der Standardwert sind alle Spalten außer der pivotierten Spalte und der Aggregationsspalte.
OutputSchema Die Namen und Typen für die erwarteten Spalten der pivot Plug-In-Ausgabe.

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

Durch die Angabe des erwarteten Schemas wird die Abfrageausführung optimiert, da nicht zuerst die eigentliche Abfrage ausgeführt werden muss, um das Schema zu untersuchen. Wenn das Laufzeitschema nicht mit dem OutputSchema-Schema übereinstimmt, wird ein Fehler ausgelöst.

Gibt zurück

Pivot gibt die gedrehte Tabelle mit den angegebenen Spalten (column1, column2, ...) sowie allen eindeutigen Werten der Pivotspalten zurück. Jede Zelle für die pivotierten Spalten enthält die Berechnung der Aggregatfunktion.

Beispiele

Pivotieren nach einer Spalte

Zählen Sie für jeden EventType und Jeden Status, der mit "AL" beginnt, die Anzahl der Ereignisse dieses Typs in diesem Zustand.

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

Ausgabe

EventType ALABAMA ALASKA
Sturm 352 1
Starker Wind 0 95
Extreme Kälte/Windkühlung 0 10
Starker Wind 22 0

Pivotieren durch eine Spalte mit Aggregationsfunktion

Zeigen Sie für jeden EventType und jeden Status, der mit "AR" beginnt, die Gesamtzahl der direkten Todesfälle an.

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

Ausgabe

EventType ARKANSAS ARIZONA
Starker Regen 1 0
Sturm 1 0
Lightning 0 1
Überschwemmung 0 6
Starker Wind 1 0
Hitze 3 0

Pivotieren durch eine Spalte mit Aggregationsfunktion und einer einzelnen zusätzlichen Spalte

Das Ergebnis ist mit dem vorherigen Beispiel identisch.

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

Ausgabe

EventType ARKANSAS ARIZONA
Starker Regen 1 0
Sturm 1 0
Lightning 0 1
Überschwemmung 0 6
Starker Wind 1 0
Hitze 3 0

Geben Sie die pivotierte Spalte, die Aggregationsfunktion und mehrere zusätzliche Spalten an.

Summieren Sie für jeden Ereignistyp, jede Quelle und jeden Zustand die Anzahl der direkten Todesfälle.

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

Ausgabe

EventType Quelle ARKANSAS ARIZONA
Starker Regen Katastrophenschutz 1 0
Sturm Katastrophenschutz 1 0
Lightning Zeitung 0 1
Überschwemmung Ausgebildeter „Spotter“ 0 2
Überschwemmung Broadcast-Medien 0 3
Überschwemmung Zeitung 0 1
Starker Wind Strafverfolgungsbehörden 1 0
Hitze Zeitung 3 0

Pivotieren mit einem abfragedefiniertem Ausgabeschema

Im folgenden Beispiel werden bestimmte Spalten in der Tabelle StormEvents ausgewählt. Es verwendet eine explizite Schemadefinition, die es ermöglicht, verschiedene Optimierungen auszuwerten, bevor die eigentliche Abfrage ausgeführt wird.

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

Ausgabe

EventType ALABAMA ALASKA
Sturm 352 1
Starker Wind 0 95
Meeresgewitterwind 0 0
Starker Wind 22 0
Extreme Kälte/Windkühlung 0 10
Kälte/Windkühlung 0 0
Starker Meereswind 0 0
Meereshochwind 0 0