Operatore range
Si applica a: ✅Microsoft Fabric✅
Genera una tabella a colonna singola di valori.
Nota
Questo operatore non accetta un input tabulare.
Sintassi
range
columnNamefrom
inizioto
fermarsistep
passo
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
columnName | string |
✔️ | Nome della singola colonna nella tabella di output. |
start | int, long, real, datetime o timespan | ✔️ | Valore più piccolo nell'output. |
stop | int, long, real, datetime o timespan | ✔️ | Valore massimo generato nell'output o associato al valore più alto se passaggio si trova su questo valore. |
passo | int, long, real, datetime o timespan | ✔️ | Differenza tra due valori consecutivi. |
Nota
I valori non possono fare riferimento alle colonne di alcuna tabella. Se si desidera calcolare l'intervallo in base a una tabella di input, usare la funzione range potenzialmente con l'operatore mv-expand .
Valori restituiti
Tabella con una singola colonna denominata columnName, i cui valori sono start, start +
step, ... fino a e fino a fermarsi.
Esempi
L'esempio in questa sezione illustra come usare la sintassi per iniziare.
Gli esempi in questo articolo usano tabelle disponibili pubblicamente nel cluster della Guida , ad esempio la tabella
StormEvents
nel database degli esempi.
Gli esempi in questo articolo usano tabelle disponibili pubblicamente, ad esempio la tabella
StormEvents
in Analisi meteo dati di esempio.
Intervallo negli ultimi sette giorni
Nell'esempio seguente viene creata una tabella con voci per il timestamp corrente esteso negli ultimi sette giorni, una volta al giorno.
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 |
Combinare orari di arresto diversi
Nell'esempio seguente viene illustrato come estendere gli intervalli per usare più ore di arresto usando l'operatore 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
Ore |
---|
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 |
Intervallo con parametri
Nell'esempio seguente viene illustrato come usare l'operatore range
con parametri, che vengono quindi estesi e utilizzati come tabella.
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 |
... | ... | ... | ... |
Passaggi incrementati
L'esempio seguente crea una tabella con una singola colonna denominata Steps
il cui tipo è long
e restituisce valori compresi tra uno e otto incrementati di tre.
range Steps from 1 to 8 step 3
Output
Passi |
---|
1 |
4 |
7 |
Tracce in un intervallo di tempo
Nell'esempio seguente viene illustrato come utilizzare l'operatore range
per creare una tabella delle dimensioni utilizzata per introdurre zeri in cui i dati di origine non hanno valori. Sono necessari timestamp delle ultime quattro ore e conteggia le tracce per ogni intervallo di un minuto. Quando non sono presenti tracce per un intervallo specifico, il conteggio è zero.
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