Оператор 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, значения которого начинаются, действие, ... до и до остановки+
.
Примеры
В этом разделе показано, как использовать синтаксис для начала работы.
Примеры, приведенные в этой статье, используют общедоступные таблицы в кластера, например таблицу
StormEvents
в базе данных Samples.
В примерах этой статьи используются общедоступные таблицы, такие как таблица
StormEvents
в аналитике погоды примеры данных.
Диапазон за последние семь дней
В следующем примере создается таблица с записями для текущей метки времени, продленной за последние семь дней, один раз в день.
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
Выходные данные
Шаги |
---|
1 |
4 |
7 |
Трассировки с течением времени
В следующем примере показано, как можно использовать оператор range
для создания таблицы измерений, которая используется для введения нуля, где исходные данные не имеют значений. Метки времени требуются за последние четыре часа и счетчик трассировки для каждого интервала в одну минуту. Если для определенного интервала нет трассировок, число равно нулю.
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