bin_at()

Возвращает значение, округленное до ближайшего размера ячейки, которое выравнивается с фиксированной эталонной точкой.

В отличие от функции bin(), где точка выравнивания предопределена, bin_at() позволяет определить фиксированную точку для выравнивания. Результаты могут выровняться до или после фиксированной точки.

Синтаксис

bin_at(значение,bin_size fixed_point,)

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Description
значение int, long, real, timespan или datetime ✔️ Значение для округления.
bin_size int, long, real или timespan ✔️ Размер каждой ячейки.
fixed_point int, long, real, timespan или datetime ✔️ Константой того же типа, что и значение, которое используется в качестве фиксированной эталонной точки.

Примечание.

Если значение равно или timespandatetime, то bin_size должен быть timespan.

Возвраты

Ближайшее несколько bin_size ниже заданного значения, которое соответствует указанному fixed_point.

Примеры

В следующем примере значение округляется до ближайшей bin_size , которая соответствует fixed_point.

print bin_at(6.5, 2.5, 7)

Выходные данные

print_0
4,5

В следующем примере интервал времени сопоставляется в ежедневные ячейки, выровненные до 12 часов фиксированной точки. Возвращаемое значение равно -12, так как ежедневное ячейко выровнено до 12 часов округляется до 12 в предыдущий день.

print bin_at(time(1h), 1d, 12h)

Выходные данные

print_0
-12:00:00

В следующем примере ежедневные ячейки соответствуют полудню.

print bin_at(datetime(2017-05-15 10:20:00.0), 1d, datetime(1970-01-01 12:00:00.0))

Выходные данные

print_0
2017-05-14T12:00:00Z

В следующем примере ячейки еженедельно и соответствуют началу воскресенья 6 июня 2017 года. В примере возвращается ячейка, выравниваемая по воскресеньям.

print bin_at(datetime(2017-05-17 10:20:00.0), 7d, datetime(2017-06-04 00:00:00.0))

Выходные данные

print_0
2017-05-14T00:00:00Z

В следующем примере общее количество событий сгруппировано в ежедневные ячейки, выровненные по fixed_point дате и времени. Значение fixed_point включается в одну из возвращаемых ячеек.

datatable(Date:datetime, NumOfEvents:int)[
datetime(2018-02-24T15:14),3,
datetime(2018-02-24T15:24),4,
datetime(2018-02-23T16:14),4,
datetime(2018-02-23T17:29),4,
datetime(2018-02-26T15:14),5]
| summarize TotalEvents=sum(NumOfEvents) by bin_at(Date, 1d, datetime(2018-02-24 15:14:00.0000000)) 

Выходные данные

Дата TotalEvents
2018-02-23T15:14:00Z 8
2018-02-24T15:14:00Z 7
2018-02-26T15:14:00Z 5