bin()
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
arrotonda per difetto i valori fino a un numero intero multiplo della dimensione del contenitore specificata.
Si usa spesso in combinazione con summarize by ...
.
Se si dispone di un set di valori sparsi, questi verranno raggruppati in un set più piccolo di valori specifici.
Le
bin()
funzioni efloor()
sono equivalenti
Sintassi
bin(
value,
roundTo)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Description |
---|---|---|---|
value | int, long, real, timespan o datetime | ✔️ | Valore da arrotondare verso il basso. |
roundTo | int, long, real o timespan | ✔️ | Dimensione "bin" che divide il valore. |
Valori restituiti
Il multiplo più vicino di roundTo inferiore a value. Valori Null, dimensioni di bin Null o dimensioni di bin negative restituiranno Null.
Esempi
Contenitore numerico
print bin(4.5, 1)
Output
print_0 |
---|
4 |
Bin intervallo di tempo
print bin(time(16d), 7d)
Output
print_0 |
---|
14:00:00:00 |
Contenitore datetime
print bin(datetime(1970-05-11 13:45:07), 1d)
Output
print_0 |
---|
1970-05-11T00:00:00Z |
Aggiungere un riquadro a una tabella con bin Null
Quando sono presenti righe per contenitori senza riga corrispondente nella tabella, è consigliabile riempire la tabella con tali contenitori. La query seguente esamina gli eventi forti della tempesta di vento in California per una settimana ad aprile. Tuttavia, non ci sono eventi in alcuni giorni.
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)
Output
StartTime | PropertyDamage |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105000 |
Per rappresentare l'intera settimana, la query seguente riempie la tabella dei risultati con valori Null per i giorni mancanti. Ecco una spiegazione dettagliata del processo:
- Usare l'operatore
union
per aggiungere altre righe alla tabella. - L'operatore
range
produce una tabella con una singola riga e una singola colonna. - L'operatore
mv-expand
sullarange
funzione crea il numero di righeStartTime
tra eEndTime
. - Usare un valore
0
perPropertyDamage
. - L'operatore
summarize
raggruppa i bin dalla tabella originale alla tabella prodotta dall'espressioneunion
. Questo processo assicura che l'output abbia un'unica riga per ogni bin il cui valore è pari a zero o al conteggio originale.
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)
Output
StartTime | PropertyDamage |
---|---|
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 | 1000 |
2007-04-12T00:00:00Z | 105000 |
2007-04-13T00:00:00Z | 0 |
2007-04-14T00:00:00Z | 0 |