bin()

값을 지정된 bin 크기의 아래쪽 정수 배로 반올림합니다.

summarize by ...와 함께 자주 사용됩니다. 분산된 값 집합이 있는 경우 더 작은 특정 값 집합으로 그룹화됩니다.

bin()floor() 함수는 동일합니다.

Syntax

bin(value,roundTo)

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 형식 필수 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 105000

전체 주를 나타내기 위해 다음 쿼리는 누락된 날짜에 대한 null 값으로 결과 테이블을 채운다. 프로세스에 대한 단계별 설명은 다음과 같습니다.

  1. 연산자를 union 사용하여 테이블에 행을 더 추가합니다.
  2. range 연산자는 단일 행과 열이 있는 테이블을 생성합니다.
  3. 함수의 연산자는 mv-expandrangeEndTime사이에 StartTime bin이 있는 만큼의 행을 만듭니다.
  4. PropertyDamage0을 사용합니다.
  5. 연산자는 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 105000
2007-04-13T00:00:00Z 0
2007-04-14T00:00:00Z 0