bin()
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
값을 지정된 bin 크기의 아래쪽 정수 배로 반올림합니다.
와 함께 summarize by ...
자주 사용됩니다.
분산된 값 집합이 있는 경우 더 작은 특정 값 집합으로 그룹화됩니다.
bin()
함수 및floor()
함수는 동일합니다.
구문
bin(
value,
roundTo)
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | Description |
---|---|---|---|
value | int, long, real, timespan 또는 datetime | ✔️ | 반올림할 값입니다. |
roundTo | int, long, real 또는 timespan | ✔️ | 값을 나누는 "bin 크기"입니다. |
반품
roundTo 값의 가장 가까운 배수입니다. Null 값, null bin 크기 또는 음수 bin 크기는 null이 됩니다.
예제
숫자 bin
print bin(4.5, 1)
출력
print_0 |
---|
4 |
Timespan bin
print bin(time(16d), 7d)
출력
print_0 |
---|
14:00:00:00 |
Datetime bin
print bin(datetime(1970-05-11 13:45:07), 1d)
출력
print_0 |
---|
1970-05-11T00:00:00Z |
null bin이 있는 테이블 패딩
테이블에 해당 행이 없는 bin에 대한 행이 있는 경우 테이블을 해당 bin으로 패딩하는 것이 좋습니다. 다음 쿼리는 4월에 1주일 동안 캘리포니아에서 발생한 강풍 이벤트를 확인합니다. 그러나 일부 날짜에는 이벤트가 없습니다.
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)
출력
StartTime | 재산피해 |
---|---|
2007-04-08T00:00:00Z | 3000 |
2007-04-11T00:00:00Z | 1000 |
2007-04-12T00:00:00Z | 105,000 |
전체 주를 나타내기 위해 다음 쿼리는 누락된 일의 null 값으로 결과 테이블을 채운다. 프로세스에 대한 단계별 설명은 다음과 같습니다.
- 연산자를
union
사용하여 테이블에 행을 더 추가합니다. range
연산자는 단일 행과 열이 있는 테이블을 생성합니다.- 함수에 대한 연산자는
mv-expand
range
사이의StartTime
EndTime
bin과 . PropertyDamage
0
을 사용합니다.- 연산자는
summarize
원래 테이블의 bin을 식에 의해union
생성된 테이블로 그룹화합니다. 이 프로세스를 통해 출력의 행은 bin마다 하나로 유지되고 값은 0개 또는 원래 개수로 유지됩니다.
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)
출력
StartTime | 재산피해 |
---|---|
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 | 105,000 |
2007-04-13T00:00:00Z | 0 |
2007-04-14T00:00:00Z | 0 |