range 運算子
產生值的單一數據行數據表。
注意
此運算子不會接受表格式輸入。
語法
range
columnNamefrom
開始to
停step
步
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
columnName | string |
✔️ | 輸出數據表中單一數據行的名稱。 |
start | int、long、real、datetime 或 timespan | ✔️ | 輸出中的最小值。 |
停止 | int、long、real、datetime 或 timespan | ✔️ | 如果 逐步 執行此值,則會在輸出中產生的最高值,或系結在最高值上的值。 |
步 | int、long、real、datetime 或 timespan | ✔️ | 兩個連續值之間的差異。 |
傳回
具有名為 columnName 之單一數據行的數據表,其值為 start、start+
、 ...直到停止為止。
範例
過去七天的範圍
下列範例會建立一個數據表,其中包含過去七天一天一次的目前時間戳專案。
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 |
... | ... | ... | ... |
遞增步驟
下列範例會建立一個數據表,其類型為 long
且其類型為 Steps
,並將值從一個遞增到八個遞增三個。
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