bin()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Zaokrouhlí hodnoty dolů na celé číslo násobku dané velikosti přihrádky.
Používá se často v kombinaci s summarize by ...
.
Pokud máte bodovou sadu hodnot, seskupí se do menší sady konkrétních hodnot.
Funkce
bin()
afloor()
funkce jsou ekvivalentní.
Syntaxe
bin(
hodnota,
roundTo)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Description |
---|---|---|---|
value | int, long, real, timespan nebo datetime | ✔️ | Hodnota, která se má zaokrouhlit dolů. |
roundTo | int, long, real, or timespan | ✔️ | Velikost přihrádky, která rozdělí hodnotu. |
Návraty
Nejbližší násobek roundTo pod hodnotou. Hodnoty null, velikost přihrádky null nebo záporná velikost přihrádky budou mít za následek hodnotu null.
Příklady
Číselný interval
print bin(4.5, 1)
Výstup
print_0 |
---|
4 |
Interval časového intervalu
print bin(time(16d), 7d)
Výstup
print_0 |
---|
14:00:00:00 |
Interval datetime
print bin(datetime(1970-05-11 13:45:07), 1d)
Výstup
print_0 |
---|
1970-05-11T00:00:00Z |
Pad a table with null bins
Pokud jsou řádky pro intervaly bez odpovídajícího řádku v tabulce, doporučujeme vložit tabulku s těmito intervaly. Následující dotaz sleduje události silné bouře větru v Kalifornii týden v dubnu. V některých dnech však nejsou žádné události.
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)
Výstup
Počáteční čas | PropertyDamage |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105000 |
Aby bylo možné reprezentovat celý týden, následující dotaz vloží výslednou tabulku s hodnotami null pro chybějící dny. Tady je podrobné vysvětlení tohoto procesu:
- Pomocí operátoru
union
můžete do tabulky přidat další řádky. - Operátor
range
vytvoří tabulku, která má jeden řádek a sloupec. - Operátor
mv-expand
nadrange
funkcí vytvoří tolik řádků, kolik jsou intervaly meziStartTime
aEndTime
. PropertyDamage
Použití funkce0
.- Operátor
summarize
seskupí intervaly z původní tabulky do tabulky vytvořené výrazemunion
. Tento proces zajistí, že výstup má jeden řádek na interval, jehož hodnota je nula nebo původní počet.
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)
Výstup
Počáteční čas | 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 |