bin()
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 a dispersione, 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 | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
value | int, long, real, timepan o datetime | ✔️ | Valore da arrotondare. |
roundTo | int, long, real o timepan | ✔️ | Dimensione "bin" che divide il valore. |
Restituisce
Il multiplo più vicino di roundTo inferiore a value. Valori Null, dimensioni di bin Null o dimensioni di bin negative restituiranno Null.
Esempio
Contenitore numerico
print bin(4.5, 1)
Output
print_0 |
---|
4 |
Bin Timepan
print bin(time(16d), 7d)
Output
print_0 |
---|
14:00:00:00 |
Bin Datetime
print bin(datetime(1970-05-11 13:45:07), 1d)
Output
print_0 |
---|
1970-05-11T00:00:00Z |
Riquadri di una tabella con bin Null
Quando sono presenti righe per i contenitori senza righe corrispondenti nella tabella, è consigliabile inserire la tabella con tali contenitori. La query seguente esamina gli eventi della tempesta vento forte 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 la settimana completa, il riquadro di query seguente esegue 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
presenti 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 |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per