Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
値が含まれる 1 列のテーブルを生成します。
Note
この演算子は表形式の入力を受け取りません。
Syntax
range
columnNamefrom
startto
stopstep
step
Learn more about syntax conventions.
Parameters
Name | タイプ | Required | Description |
---|---|---|---|
columnName | string |
✔️ | 出力テーブル内の単一列の名前。 |
start | int、long、real、datetime、または timespan | ✔️ | 出力内の最小の値。 |
stop | int、long、real、datetime、または timespan | ✔️ | The highest value being generated in the output or a bound on the highest value if step is over this value. |
step | int、long、real、datetime、または timespan | ✔️ | 2 つの連続する値の差。 |
Note
値はどのテーブルの列も参照できません。 If you want to compute the range based on an input table, use the range function potentially with the mv-expand operator.
Returns
A table with a single column called columnName, whose values are start, start+
step, ... up to and until stop.
Examples
このセクションの例では、構文を使用して作業を開始する方法を示します。
The examples in this article use publicly available tables in the help cluster, such as the
StormEvents
table in the Samples database.
The examples in this article use publicly available tables, such as the
Weather
table in the Weather analytics sample gallery. ワークスペース内のテーブルと一致するように、クエリ例のテーブル名を変更する必要がある場合があります。
過去 7 日間の範囲
次の例では、過去 7 日間に 1 日に 1 回、現在のタイム スタンプのエントリを含むテーブルを作成します。
range LastWeek from ago(7d) to now() step 1d
Output
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
Output
Time |
---|
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
Output
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 |
... | ... | ... | ... |
Incremented steps
次の例では、型が Steps
long
という 1 つの列を持つテーブルを作成し、1 から 8 の値を 3 ずつインクリメントします。
range Steps from 1 to 8 step 3
Output
Steps |
---|
1 |
4 |
7 |
時間範囲のトレース
次の例は、range
演算子を使用して、ソース データに値がないゼロを導入するために使用されるディメンション テーブルを作成する方法を示しています。 過去 4 時間のタイムスタンプを取得し、1 分間隔ごとにトレースをカウントします。 特定の間隔のトレースがない場合、カウントは 0 になります。
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