Udostępnij za pośrednictwem


bin()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

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() i floor() są równoważne

Składnia

bin(wartość,roundTo)

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type 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

Pojemnik liczbowy

print bin(4.5, 1)

Wyjście

print_0
100

Przedział czasu

print bin(time(16d), 7d)

Wyjście

print_0
14:00:00:00

Przedział daty/godziny

print bin(datetime(1970-05-11 13:45:07), 1d)

Wyjście

print_0
1970-05-11T00:00:00Z

Dopełnij tabelę z pojemnikami o wartości null

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

StartTime 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:

  1. union Użyj operatora , aby dodać więcej wierszy do tabeli.
  2. Operator range tworzy tabelę zawierającą jeden wiersz i kolumnę.
  3. Operator mv-expand nad funkcją range tworzy tyle wierszy, ile jest przedziałów między StartTime i EndTime.
  4. Użyj a PropertyDamage z .0
  5. Operator summarize grupuje ze sobą pojemniki z oryginalnej tabeli na tabelę utworzoną union przez 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

StartTime 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