Freigeben über


range-Operator

Gilt für: ✅Microsoft Fabric

Erzeugt eine einspaltige Tabelle mit Werten.

Hinweis

Dieser Operator verwendet keine tabellarische Eingabe.

Syntax

range columnNamefromanfangentoaufhörenstepSchritt

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung des Dataflows
columnName string ✔️ Der Name der einzelnen Spalte in der Ausgabetabelle.
start int, long, real, datetime oder timespan ✔️ Der kleinste Wert in der Ausgabe.
stop int, long, real, datetime oder timespan ✔️ Der höchste Wert, der in der Ausgabe oder an den höchsten Wert generiert wird, wenn Schrittschritte über diesen Wert erfolgen.
Schritt int, long, real, datetime oder timespan ✔️ Der Unterschied zwischen zwei aufeinander folgenden Werten.

Hinweis

Die Werte können nicht auf die Spalten einer Tabelle verweisen. Wenn Sie den Bereich basierend auf einer Eingabetabelle berechnen möchten, verwenden Sie die Bereichsfunktion potenziell mit dem mv-expand-Operator .

Gibt zurück

Eine Tabelle mit einer einzelnen Spalte namens "columnName", deren Werte beginnen, Beginnen +, ... bis zu und bis zum Anhalten.

Beispiele

Bereich über die letzten sieben Tage

Im folgenden Beispiel wird eine Tabelle mit Einträgen für den aktuellen Zeitstempel erstellt, der sich über die letzten sieben Tage erstreckt, einmal pro Tag.

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

Kombinieren unterschiedlicher Stoppzeiten

Das folgende Beispiel zeigt, wie Bereiche erweitert werden, um mehrere Stoppzeiten mithilfe des union-Operators zu verwenden.

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

Zeit
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

Bereich mit Parametern

Das folgende Beispiel zeigt, wie der range Operator mit Parametern verwendet wird, die dann als Tabelle erweitert und verbraucht werden.

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
... ... ... ...

Inkrementierte Schritte

Im folgenden Beispiel wird eine Tabelle mit einer einzelnen Spalte namens Steps erstellt, deren Typ long ist, und führt zu Werten von 1 bis acht Schritten um drei.

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