range 運算子
產生值的單一數據行數據表。
注意
此運算子不會接受表格式輸入。
語法
range
columnNamefrom
開始to
停step
步
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
columnName | string |
✔️ | 輸出數據表中單一數據行的名稱。 |
start | int、long、real、datetime 或 timespan | ✔️ | 輸出中的最小值。 |
停止 | int、long、real、datetime 或 timespan | ✔️ | 如果 步驟 超過此值,則輸出中產生的最高值或系結的最高值。 |
步 | int、long、real、datetime 或 timespan | ✔️ | 兩個連續值之間的差異。 |
傳回
具有名為 columnName+
、 ...直到停止為止。
範例
本節中的範例示範如何使用 語法來協助您開始使用。
本文中的範例會使用 說明叢集中公開可用的數據表,例如
StormEvents
資料庫中的 數據表。
本文中的範例會使用公開可用的數據表,例如天氣分析中的
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