bin()
Avrundar värden nedåt till ett heltal med en angiven lagerplatsstorlek.
Används ofta i kombination med summarize by ...
.
Om du har en utspridda uppsättning värden grupperas de i en mindre uppsättning specifika värden.
Funktionerna
bin()
ochfloor()
är likvärdiga
Syntax
bin(
Värde,
roundTo)
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
värde | int, long, real, timespan eller datetime | ✔️ | Värdet som ska avrundas nedåt. |
roundTo | int, long, real eller timespan | ✔️ | Den "lagerplatsstorlek" som delar upp värdet. |
Returer
Närmaste multipel av roundTo under värde. Null-värden, en null-bin-storlek eller en negativ bin-storlek resulterar i null.
Exempel
Numeriskt intervall
print bin(4.5, 1)
Resultat
print_0 |
---|
4 |
Tidsintervall
print bin(time(16d), 7d)
Resultat
print_0 |
---|
14:00:00:00 |
Datetime-lagerplats
print bin(datetime(1970-05-11 13:45:07), 1d)
Resultat
print_0 |
---|
1970-05-11T00:00:00Z |
Fylla en tabell med null-intervall
När det finns rader för lagerplatser utan motsvarande rad i tabellen rekommenderar vi att du fyller tabellen med dessa lagerplatser. Följande fråga tittar på starka vindstormhändelser i Kalifornien under en vecka i april. Det finns dock inga händelser under vissa dagar.
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)
Resultat
StartTime | PropertyDamage |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105000 |
För att representera hela veckan fyller följande fråga i resultattabellen med null-värden för de dagar som saknas. Här är en stegvis förklaring av processen:
- Använd operatorn
union
för att lägga till fler rader i tabellen. - Operatorn
range
skapar en tabell som har en enda rad och kolumn. - Operatorn
mv-expand
överrange
funktionen skapar lika många rader som det finns intervall mellanStartTime
ochEndTime
. - Använd en
PropertyDamage
av0
. - Operatorn
summarize
grupperar intervall från den ursprungliga tabellen till den tabell som skapas avunion
uttrycket. Den här processen säkerställer att utdata har en rad per lagerplats vars värde är antingen noll eller det ursprungliga antalet.
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)
Resultat
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.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för