Оператор range
Область применения: ✅Microsoft Fabric✅✅
Создает таблицу значений с одним столбцом.
Примечание.
Этот оператор не принимает табличные входные данные.
Синтаксис
range
columnNamefrom
началоto
остановкаstep
шаг
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
columnName | string |
✔️ | Имя одного столбца в выходной таблице. |
Начало | int, long, real, datetime или timepan | ✔️ | Наименьшее значение в выходных данных. |
stop | int, long, real, datetime или timepan | ✔️ | Наибольшее значение, создаваемое в выходных данных или привязанное к самому высокому значению, если шаг выполняется по этому значению. |
шаг | int, long, real, datetime или timepan | ✔️ | Разница между двумя последовательными значениями. |
Примечание.
Значения не могут ссылаться на столбцы любой таблицы. Если вы хотите вычислить диапазон на основе входной таблицы, используйте функцию диапазона потенциально с оператором mv-expand .
Возвраты
Таблица с одним столбцом с именем columnName, значения которого начинаются, +
действие, ... до и до остановки.
Примеры
Диапазон за последние семь дней
В следующем примере создается таблица с записями для текущей метки времени, продленной за последние семь дней, один раз в день.
range LastWeek from ago(7d) to now() step 1d
Выходные данные
LastWeek |
---|
2015-12-05 09:10:04.627 |
2015-12-06 09:10:04.627 |
... |
2015-12-12 09:10:04.627 |
Объединение разных времен остановки
В следующем примере показано, как расширить диапазоны для использования нескольких раз остановки с помощью оператора union
.
let Range1 = range Time from datetime(2024-01-01) to datetime(2024-01-05) step 1d;
let Range2 = range Time from datetime(2024-01-06) to datetime(2024-01-10) step 1d;
union Range1, Range2
| order by Time asc
Выходные данные
Время |
---|
2024-01-04 00:00:00.0000000 |
2024-01-05 00:00:00.0000000 |
2024-01-06 00:00:00.0000000 |
2024-01-07 00:00:00.0000000 |
2024-01-08 00:00:00.0000000 |
2024-01-09 00:00:00.0000000 |
2024-01-10 00:00:00.0000000 |
Диапазон с помощью параметров
В следующем примере показано, как использовать range
оператор с параметрами, которые затем расширяются и используются в качестве таблицы.
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01)) / 1s
};
let MyMonthStart = startofmonth(now()); //Start of month
let StepBy = 4.534h; //Supported timespans
let nn = 64000; // Row Count parametrized
let MyTimeline = range MyMonthHour from MyMonthStart to now() step StepBy
| extend MyMonthHourinUnixTime = toUnixTime(MyMonthHour), DateOnly = bin(MyMonthHour,1d), TimeOnly = MyMonthHour - bin(MyMonthHour,1d)
; MyTimeline | order by MyMonthHour asc | take nn
Выходные данные
MyMonthHour | MyMonthHourinUnixTime | DateOnly | TimeOnly |
---|---|---|---|
2023-02-01 | 00:00:00.0000000 | 1675209600 | 2023-02-01 00:00:00.0000000 |
2023-02-01 | 04:32:02.4000000 | 1675225922.4 | 2023-02-01 00:00:00.0000000 |
2023-02-01 | 09:04:04.8000000 | 1675242244.8 | 2023-02-01 00:00:00.0000000 |
2023-02-01 | 13:36:07.2000000 | 1675258567.2 | 2023-02-01 00:00:00.0000000 |
... | ... | ... | ... |
Добавочные шаги
В следующем примере создается таблица с одним столбцом с именем Steps
, тип которого long
и приводит к значению от одного до восьми.
range Steps from 1 to 8 step 3
| Steps |
|-------|
| 1 |
| 4 |
| 7 |
### Traces over a time range
The following example shows how the `range` operator can be used to create a dimension table that is used to introduce zeros where the source data has no values. It takes timestamps from the last four hours and counts traces for each one minute interval. When there are no traces for a specific interval, the count is zero.
```kusto
range TIMESTAMP from ago(4h) to now() step 1m
| join kind=fullouter
(Traces
| where TIMESTAMP > ago(4h)
| summarize Count=count() by bin(TIMESTAMP, 1m)
) on TIMESTAMP
| project Count=iff(isnull(Count), 0, Count), TIMESTAMP
| render timechart