bin()
Rundet Werte auf eine ganze Zahl ab, die ein Vielfaches der angegebenen bin-Größe ist.
Wird häufig in Kombination mit summarize by ...
verwendet.
Wenn Sie über einen verstreuten Satz von Werten verfügen, werden diese in einem kleineren Satz spezifischer Werte gruppiert.
Die
bin()
Funktionen undfloor()
sind gleichwertig.
Syntax
bin(
value,
roundTo)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
value | int, long, real, timespan oder datetime | ✔️ | Der wert, der abgerundet werden soll. |
roundTo | int, long, real oder timespan | ✔️ | Die "bin-Größe", die den Wert teilt. |
Gibt zurück
Das nächste Vielfache von roundTo unter dem Wert (value). NULL-Werte, eine bin-Größe von NULL oder eine negative bin-Größe ergeben NULL.
Beispiele
Numerischer Bin
print bin(4.5, 1)
Ausgabe
print_0 |
---|
4 |
Timespan bin
print bin(time(16d), 7d)
Ausgabe
print_0 |
---|
14:00:00:00 |
Datetime-Bin
print bin(datetime(1970-05-11 13:45:07), 1d)
Ausgabe
print_0 |
---|
1970-05-11T00:00:00Z |
Markieren einer Tabelle mit NULL-Bins
Wenn Zeilen für Bins ohne entsprechende Zeile in der Tabelle vorhanden sind, wird empfohlen, die Tabelle mit diesen Bins zu markieren. Die folgende Abfrage untersucht starke Windstürme in Kalifornien für eine Woche im April. An einigen Tagen gibt es jedoch keine Ereignisse.
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)
Ausgabe
StartTime | PropertyDamage |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105000 |
Um die vollständige Woche darzustellen, werden in der folgenden Abfrage die Ergebnistabelle mit NULL-Werten für die fehlenden Tage gespeichert. Im Folgenden finden Sie eine schrittweise Erläuterung des Prozesses:
- Verwenden Sie den
union
Operator, um der Tabelle weitere Zeilen hinzuzufügen. - Der
range
-Operator erzeugt eine Tabelle mit einer einzelnen Zeile und Spalte. - Der
mv-expand
Operator für dierange
-Funktion erstellt so viele Zeilen, wie Zwischen- undEndTime
vorhandenStartTime
sind. - Verwenden Sie eine
PropertyDamage
von0
. - Der
summarize
Operator gruppiert Bins aus der ursprünglichen Tabelle mit der vom Ausdruck erzeugtenunion
Tabelle. Durch diesen Vorgang wird sichergestellt, dass die Ausgabe eine Zeile pro Intervall enthält, deren Wert entweder 0 oder die ursprüngliche Anzahl ist.
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)
Ausgabe
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 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für