Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zaokrągla wartości w dół do liczby całkowitej wielokrotności danego rozmiaru pojemnika.
Często używane w połączeniu z summarize by ....
Jeśli masz rozproszony zestaw wartości, zostaną one pogrupowane w mniejszy zestaw określonych wartości.
Funkcje
bin()ifloor()są równoważne
Składnia
bin(
wartość,roundTo)
Dowiedz się więcej na temat konwencji składni.
Parametry
| Nazwisko | Typ | Wymagania | Popis |
|---|---|---|---|
| wartość | int, long, real, timespan lub datetime | ✔️ | Wartość, która ma być zaokrąglana w dół. |
| roundTo | int, long, real, or timespan | ✔️ | "Rozmiar pojemnika", który dzieli wartość. |
Zwraca
Najbliższa wielokrotność roundTo poniżej wartości. Wartości null, rozmiar pojemnika o wartości null lub ujemny rozmiar pojemnika spowoduje wartość null.
Przykłady
W poniższym przykładzie pokazano bin() funkcję z danymi liczbowymi.
print bin(4.5, 1)
Wyjście
| print_0 |
|---|
| 100 |
W poniższym przykładzie bin() pokazano funkcję z danymi przedziału czasu.
print bin(time(16d), 7d)
Wyjście
| print_0 |
|---|
| 14:00:00:00 |
W poniższym przykładzie pokazano bin() funkcję z danymi data/godzina.
print bin(datetime(1970-05-11 13:45:07), 1d)
Wyjście
| print_0 |
|---|
| 1970-05-11T00:00:00Z |
Jeśli w tabeli znajdują się wiersze dla pojemników bez odpowiedniego wiersza, zalecamy wypełnienie tabeli tymi pojemnikami. Poniższe zapytanie analizuje silne zdarzenia burzy wiatru w Kalifornii na tydzień w kwietniu. Jednak w niektórych dniach nie ma żadnych zdarzeń.
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)
Wyjście
| Godzina rozpoczęcia | Uszkodzenie mienia |
|---|---|
| 2007-04-08T00:00:00Z | 3000 |
| 2007-04-11T00:00:00Z | 1000 |
| 2007-04-12T00:00:00Z | 105000 |
Aby przedstawić pełny tydzień, następujące zapytanie podpełnia tabelę wyników z wartościami null dla brakujących dni. Oto szczegółowe wyjaśnienie procesu:
-
unionUżyj operatora , aby dodać więcej wierszy do tabeli. - Operator
rangetworzy tabelę zawierającą jeden wiersz i kolumnę. - Operator
mv-expandnad funkcjąrangetworzy tyle wierszy, ile jest przedziałów międzyStartTimeiEndTime. - Użyj a
PropertyDamagez .0 - Operator
summarizegrupuje ze sobą pojemniki z oryginalnej tabeli na tabelę utworzonąunionprzez wyrażenie. Ten proces gwarantuje, że dane wyjściowe mają jeden wiersz na przedział, którego wartość to zero lub oryginalna liczba.
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)
Wyjście
| Godzina rozpoczęcia | Uszkodzenie mienia |
|---|---|
| 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 |