range 運算子
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
產生值的單一數據行數據表。
注意
此運算子不會接受表格式輸入。
語法
range
columnName from
開始 to
停 step
步
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
columnName | string |
✔️ | 輸出數據表中單一數據行的名稱。 |
start | int、long、real、datetime 或 timespan | ✔️ | 輸出中的最小值。 |
停止 | int、long、real、datetime 或 timespan | ✔️ | 如果 逐步 執行此值,則會在輸出中產生的最高值,或系結在最高值上的值。 |
步 | int、long、real、datetime 或 timespan | ✔️ | 兩個連續值之間的差異。 |
傳回
具有名為 columnName 之單一數據行的數據表,其值為 start、start +
step、 ...直到停止為止。
範例
下列範例會建立一個數據表,其中包含過去七天一天一次的目前時間戳專案。
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 |
下列範例示範如何使用 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
且其值為1
、 4
和7
的單一數據行Steps
。
range Steps from 1 to 8 step 3
下列範例示範如何使用 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