Complemento pivot
Se aplica a: ✅Microsoft Fabric✅Azure 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 |