Condividi tramite


bin()

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft 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 e floor() 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:

  1. Usare l'operatore union per aggiungere altre righe alla tabella.
  2. L'operatore range produce una tabella con una singola riga e una singola colonna.
  3. L'operatore mv-expand sulla range funzione crea il numero di righe StartTime tra e EndTime.
  4. Usare un valore 0 per PropertyDamage.
  5. L'operatore summarize raggruppa i bin dalla tabella originale alla tabella prodotta dall'espressione union . 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