Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
округляет значения до целого числа, кратного указанному размеру группы.
Часто используется в сочетании с summarize by ....
Если у вас есть разбросанный набор значений, они будут сгруппированы в меньший набор определенных значений.
bin()Функцииfloor()эквивалентны
Синтаксис
bin(
ценность,roundTo)
Дополнительные сведения о соглашениях синтаксиса.
Параметры
| Имя (название) | Тип | Обязательно | Описание |
|---|---|---|---|
| значение | int, long, real, timepan или datetime | ✔️ | Значение для округления. |
| roundTo | int, long, real или timepan | ✔️ | Размер ячейки, разделяющий значение. |
Возвраты
Ближайшее число, кратное roundTo и меньшее value. При указании значения NULL, размера ячейки NULL или отрицательного значения размера ячейки возвращается значение NULL.
Примеры
В следующем примере показана bin() функция с числовыми данными.
print bin(4.5, 1)
Выходные данные
| print_0 |
|---|
| 4 |
В следующем примере показана функция с данными bin() интервала времени.
print bin(time(16d), 7d)
Выходные данные
| print_0 |
|---|
| 14:00:00:00 |
В следующем примере показана функция с данными bin() datetime.
print bin(datetime(1970-05-11 13:45:07), 1d)
Выходные данные
| print_0 |
|---|
| 1970-05-11T00:00:00Z |
Если в таблице есть строки для ячеек без соответствующей строки, рекомендуется заполнить таблицу этими ячейками. Следующий запрос смотрит на сильные штормовые события в Калифорнии на неделю в апреле. Однако в некоторые дни не существует событий.
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)
Выходные данные
| Время начала | PropertyDamage |
|---|---|
| 2007-04-08T00:00:00Z | 3000 |
| 2007-04-11T00:00:00Z | 1000 |
| 2007-04-12T00:00:00Z | 105000 |
Чтобы представить полную неделю, следующий запрос заполняет таблицу результатов значениями NULL в течение отсутствующих дней. Ниже приведены пошаговые объяснения процесса.
-
unionИспользуйте оператор, чтобы добавить в таблицу дополнительные строки. - Оператор
rangeсоздает таблицу с одной строкой и одним столбцом. - Оператор
mv-expandнадrangeфункцией создает столько строк, сколько между нимиStartTimeесть ячейкиEndTime. - Используйте для
PropertyDamageзначение0. - Оператор
summarizeгруппирует ячейки из исходной таблицы в таблицу, созданную выражениемunion. Этот процесс гарантирует, что выходные данные будут содержать одну строку для каждого интервала, значение которой равно нулю или исходному количеству.
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)
Выходные данные
| Время начала | 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 |