bin()
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
redondea los valores hacia abajo hasta un entero múltiplo del tamaño de un intervalo determinado.
Se suele usar en combinación con summarize by ...
.
Si tiene un conjunto disperso de valores, se agruparán en un conjunto más pequeño de valores específicos.
Las
bin()
funciones yfloor()
son equivalentes
Sintaxis
bin(
value,
roundTo)
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Description |
---|---|---|---|
value | int, long, real, timespan o datetime | ✔️ | Valor que se va a redondear hacia abajo. |
roundTo | int, long, real o timespan | ✔️ | El "tamaño bin" que divide el valor. |
Devoluciones
El múltiplo más cercano de roundTo por debajo de value. Los valores NULL, un tamaño de intervalo NULL o un tamaño de intervalo negativo darán como resultado NULL.
Ejemplos
Intervalo numérico
print bin(4.5, 1)
Salida
print_0 |
---|
4 |
Intervalo de tiempo
print bin(time(16d), 7d)
Salida
print_0 |
---|
14:00:00:00 |
Fecha y hora bin
print bin(datetime(1970-05-11 13:45:07), 1d)
Salida
print_0 |
---|
1970-05-11T00:00:00Z |
Relleno de una tabla con intervalos NULL
Cuando hay filas para los cubos sin fila correspondiente en la tabla, se recomienda rellenar la tabla con esos contenedores. En la consulta siguiente se examinan los eventos fuertes de tormentas eólicas en California durante una semana en abril. Sin embargo, no hay eventos en algunos de los días.
let Start = datetime('2007-04-07');
let End = Start + 7d;
StormEvents
| where StartTime between (Start .. End)
| where State == "CALIFORNIA" and EventType == "Strong Wind"
| summarize PropertyDamage=sum(DamageProperty) by bin(StartTime, 1d)
Salida
StartTime | Daños enla propiedad |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1 000 |
2007-04-12T00:00:00Z | 105000 |
Para representar la semana completa, la siguiente consulta rellena la tabla de resultados con valores NULL durante los días que faltan. Esta es una explicación paso a paso del proceso:
- Use el
union
operador para agregar más filas a la tabla. - El operador
range
genera una tabla que tiene una sola fila y columna. - El
mv-expand
operador sobre larange
función crea tantas filas como hay intervalos entreStartTime
yEndTime
. - Use
PropertyDamage
igual a0
. - El
summarize
operador agrupa los cubos de la tabla original en la tabla generada por launion
expresión. Este proceso garantiza que la salida tenga una fila por rango cuyo valor sea cero o el recuento original.
let Start = datetime('2007-04-07');
let End = Start + 7d;
StormEvents
| where StartTime between (Start .. End)
| where State == "CALIFORNIA" and EventType == "Strong Wind"
| union (
range x from 1 to 1 step 1
| mv-expand StartTime=range(Start, End, 1d) to typeof(datetime)
| extend PropertyDamage=0
)
| summarize PropertyDamage=sum(DamageProperty) by bin(StartTime, 1d)
Salida
StartTime | Daños enla propiedad |
---|---|
2007-04-07T00:00:00Z | 0 |
2007-04-08T00:00:00Z | 3000 |
2007-04-09T00:00:00Z | 0 |
2007-04-10T00:00:00Z | 0 |
2007-04-11T00:00:00Z | 1 000 |
2007-04-12T00:00:00Z | 105000 |
2007-04-13T00:00:00Z | 0 |
2007-04-14T00:00:00Z | 0 |