bin()
Hiermee worden waarden naar beneden afgerond op een veelvoud van een geheel getal van een bepaalde bin-grootte.
Wordt vaak gebruikt in combinatie met summarize by ...
.
Als u een spreidingsset waarden hebt, worden deze gegroepeerd in een kleinere set specifieke waarden.
De
bin()
functies enfloor()
zijn gelijkwaardig
Syntax
bin(
Waarde,
roundTo)
Meer informatie over syntaxisconventies.
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
value | int, long, realtime, periode of datum/tijd | ✔️ | De waarde die naar beneden moet worden afgerond. |
roundTo | int, long, real of time period | ✔️ | De 'bin size' die de waarde deelt. |
Retouren
Het dichtstbijzijnde veelvoud van roundTo onder de waarde. Null-waarden, een null-bingrootte of een negatieve bin-grootte resulteren in null.
Voorbeelden
Numerieke bin
print bin(4.5, 1)
Uitvoer
print_0 |
---|
4 |
Periode bin
print bin(time(16d), 7d)
Uitvoer
print_0 |
---|
14:00:00:00 |
Datum/tijd-bin
print bin(datetime(1970-05-11 13:45:07), 1d)
Uitvoer
print_0 |
---|
1970-05-11T00:00:00Z |
Een tabel opvult met null-bins
Wanneer er rijen zijn voor opslaglocaties zonder bijbehorende rij in de tabel, raden we u aan om de tabel te voorzien van deze opslaglocaties. Met de volgende query wordt gekeken naar gebeurtenissen met sterke windstormen in Californië gedurende een week in april. Op sommige dagen zijn er echter geen gebeurtenissen.
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)
Uitvoer
StartTime | Materiële schade |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105000 |
Om de volledige week weer te geven, vult de volgende query de resultaattabel met null-waarden voor de ontbrekende dagen. Hier volgt een stapsgewijze uitleg van het proces:
- Gebruik de
union
operator om meer rijen toe te voegen aan de tabel. - De
range
operator produceert een tabel met één rij en kolom. - De
mv-expand
operator voor derange
functie maakt net zoveel rijen als er bins tussenStartTime
enEndTime
zijn. - Gebruik een
PropertyDamage
van0
. - De
summarize
operator groepeert bins van de oorspronkelijke tabel naar de tabel die door deunion
expressie wordt geproduceerd. Dit proces zorgt ervoor dat de uitvoer één rij per bin heeft waarvan de waarde nul of het oorspronkelijke aantal is.
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)
Uitvoer
StartTime | Materiële schade |
---|---|
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.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor