Dela via


range operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Genererar en tabell med en kolumn med värden.

Note

Den här operatorn tar inte några tabellindata.

Syntax

range columnNamefromstarttostopstepstep

Learn more about syntax conventions.

Parameters

Name Type Required Description
columnName string ✔️ Namnet på den enskilda kolumnen i utdatatabellen.
start int, long, real, datetime eller timespan ✔️ Det minsta värdet i utdata.
stop int, long, real, datetime eller 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 eller timespan ✔️ Skillnaden mellan två på varandra följande värden.

Note

Värdena kan inte referera till kolumnerna i någon tabell. 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

Exemplet i det här avsnittet visar hur du använder syntaxen för att komma igång.

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. Du kan behöva ändra tabellnamnet i exempelfrågan för att matcha tabellen på din arbetsyta.

Intervall under de senaste sju dagarna

I följande exempel skapas en tabell med poster för den aktuella tidsstämpeln som har utökats under de senaste sju dagarna, en gång om dagen.

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

Kombinera olika stopptider

I följande exempel visas hur du utökar intervall för att använda flera stopptider med hjälp av operatorn 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

Intervall med parametrar

I följande exempel visas hur du använder operatorn range med parametrar, som sedan utökas och används som en tabell.

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

I följande exempel skapas en tabell med en enda kolumn med namnet Steps vars typ är long och resulterar i värden från en till åtta inkrementerade med tre.

range Steps from 1 to 8 step 3

Output

Steps
1
4
7

Spårningar över ett tidsintervall

I följande exempel visas hur range-operatorn kan användas för att skapa en dimensionstabell som används för att introducera nollor där källdata inte har några värden. Det tar tidsstämplar från de senaste fyra timmarna och räknar spårningar för varje intervall på en minut. När det inte finns några spårningar för ett visst intervall är antalet noll.

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