Compartir a través de


Complemento pivot

Se aplica a: ✅Microsoft FabricAzure Data Explorer

Gira una tabla convirtiendo los valores únicos de una columna de la tabla de entrada en varias columnas de la tabla de salida y realiza agregaciones según sea necesario en los valores de columna restantes que aparecerán en la salida final.

Nota:

Si no se especifica OutputSchema, el esquema de salida del pivot complemento se basa en los datos de entrada. Por lo tanto, varias ejecuciones del complemento que usan entradas de datos diferentes pueden generar un esquema de salida diferente. Esto también significa que la consulta que hace referencia a las columnas desempaquetadas puede convertirse en "rota" en cualquier momento. Por este motivo, no se recomienda usar este complemento para trabajos de automatización sin especificar la función OutputSchema.

Sintaxis

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

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Type Obligatorio Descripción
pivotColumn string ✔️ Columna que se va a girar. Cada valor único de esta columna será una columna de la tabla de salida.
aggregationFunction string Función de agregación usada para agregar varias filas de la tabla de entrada a una sola fila de la tabla de salida. Funciones admitidas actualmente: min(), max(), take_any(), sum(), avg()dcount()variance()stdev(), make_list(), make_bag(), , , make_set(), . count() El valor predeterminado es count().
column1, column2, ... string Nombre de columna o lista separada por comas de nombres de columna. La tabla de salida contendrá una columna adicional por cada columna especificada. El valor predeterminado es todas las columnas distintas de la columna dinamizada y la columna de agregación.
OutputSchema Los nombres y tipos de las columnas esperadas de la salida del pivot complemento.

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

Al especificar el esquema esperado, no es necesario ejecutar primero la consulta real para explorar el esquema. Se produce un error si el esquema en tiempo de ejecución no coincide con el esquema OutputSchema .

Devoluciones

Pivot devuelve la tabla girada con columnas especificadas (columna1, columna2, ...) además de todos los valores únicos de las columnas dinámicas. Cada celda de las columnas dinamizadas contendrá el cálculo de la función de agregado.

Ejemplos

Dinamización por una columna

Para cada EventType y State a partir de "AL", cuente el número de eventos de este tipo en este estado.

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

Salida

EventType ALABAMA ALASKA
Viento de tormenta 352 1
Viento fuerte 0 95
Frío y frío extremo 0 10
Strong Wind 22 0

Dinamización mediante una columna con función de agregación

Para cada EventType y State a partir de "AR", se muestra el número total de muertes directas.

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

Salida

EventType ARKANSAS ARIZONA
Lluvia intensa 1 0
Viento de tormenta 1 0
Lightning 0 1
Riada 0 6
Strong Wind 1 0
Heat (Calor) 3 0

Dinamización mediante una columna con función de agregación y una sola columna adicional

El resultado es idéntico al ejemplo anterior.

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

Salida

EventType ARKANSAS ARIZONA
Lluvia intensa 1 0
Viento de tormenta 1 0
Lightning 0 1
Riada 0 6
Strong Wind 1 0
Heat (Calor) 3 0

Especificar la columna dinamizada, la función de agregación y varias columnas adicionales

Para cada tipo de evento, origen y estado, sumar el número de muertes directas.

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

Salida

EventType Source ARKANSAS ARIZONA
Lluvia intensa Administrador de emergencia 1 0
Viento de tormenta Administrador de emergencia 1 0
Lightning Periódico 0 1
Riada Observador entrenado 0 2
Riada Medios de difusión 0 3
Riada Periódico 0 1
Strong Wind Cuerpos de seguridad 1 0
Heat (Calor) Periódico 3 0

Dinamización con un esquema de salida definido por la consulta

En el ejemplo siguiente se seleccionan columnas específicas en la tabla StormEvents. Usa una definición de esquema explícita que permite evaluar varias optimizaciones antes de ejecutar la consulta real.

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

Salida

EventType ALABAMA ALASKA
Viento de tormenta 352 1
Viento fuerte 0 95
Viento de tormenta marina 0 0
Strong Wind 22 0
Frío y frío extremo 0 10
Frío/frío con viento 0 0
Viento fuerte marino 0 0
Viento alto marino 0 0