bin()

Az értékeket egy adott dobozméret egész számának többszörösére kerekíti le.

Gyakran használják a következővel summarize by ...együtt: . Ha pontozott értékkészlettel rendelkezik, azok egy kisebb, meghatározott értékekből álló készletbe lesznek csoportosítva.

A bin() és floor() függvények egyenértékűek

Syntax

bin(Érték,roundTo)

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
value int, long, real, timespan vagy datetime ✔️ A lefelé kerekíteni kívánt érték.
roundTo int, long, real vagy timespan ✔️ Az értéket megosztó "raktárhely mérete".

Válaszok

A roundTo legközelebbi többszöröse az érték alatt. A null értékek, a null rekeszméret vagy a negatív raktárhelyméret null értéket eredményez.

Példák

Numerikus tároló

print bin(4.5, 1)

Kimenet

print_0
4

Időtartomány

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

Kimenet

print_0
14:00:00:00

Datetime bin

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

Kimenet

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

Táblázat kitöltése null rekeszekkel

Ha vannak olyan sorok a tárolókhoz, amelyekben nincs megfelelő sor a táblázatban, javasoljuk, hogy a táblázatot azokkal a tárolókkal együtt használja. Az alábbi lekérdezés egy áprilisi héten vizsgálja az erős szélvihar-eseményeket Kaliforniában. Egyes napokon azonban nincsenek események.

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)

Kimenet

StartTime PropertyDamage
2007-04-08T00:00:00Z 3000
2007-04-11T00:00:00Z 1000
2007-04-12T00:00:00Z 105000

A teljes hét megjelenítéséhez az alábbi lekérdezés null értékekkel kitölti az eredménytáblát a hiányzó napokra vonatkozóan. Íme egy részletes magyarázat a folyamatról:

  1. union Az operátorral további sorokat adhat hozzá a táblához.
  2. Az range operátor létrehoz egy táblát, amely egyetlen sorból és oszlopból áll.
  3. A mv-expand függvény fölötti range operátor annyi sort hoz létre, amennyit a és EndTimea közötti StartTime tárolók alkotnak.
  4. Használja a PropertyDamage következőt: 0.
  5. Az summarize operátor az eredeti táblából a kifejezés által létrehozott táblába csoportosítja a union raktárhelyeket. Ez a folyamat biztosítja, hogy a kimenet dobozonként egy sort tartalmaz, amelynek értéke nulla vagy az eredeti szám.
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)

Kimenet

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