Partager via


opérateur range

S’applique à : ✅Microsoft Fabric

Génère une table de valeurs à une seule colonne.

Remarque

Cet opérateur ne prend pas d’entrée tabulaire.

Syntaxe

range columnNamefromcommencertoarrêtersteppas

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
columnName string ✔️ Nom de la colonne unique dans la table de sortie.
start int, long, real, datetime ou timespan ✔️ Valeur la plus petite dans la sortie.
stop int, long, real, datetime ou timespan ✔️ Valeur la plus élevée générée dans la sortie ou une limite sur la valeur la plus élevée si les étapes pas à pas sur cette valeur sont effectuées.
step int, long, real, datetime ou timespan ✔️ Différence entre deux valeurs consécutives.

Remarque

Les valeurs ne peuvent pas référencer les colonnes d’une table. Si vous souhaitez calculer la plage en fonction d’une table d’entrée, utilisez la fonction de plage potentiellement avec l’opérateur mv-expand .

Retours

Table avec une seule colonne appelée columnName, dont les valeurs sont +, ... jusqu’à ce qu’il s’arrête.

Exemples

Plage au cours des sept derniers jours

L’exemple suivant crée une table avec des entrées pour l’horodatage actuel étendu au cours des sept derniers jours, une fois par jour.

range LastWeek from ago(7d) to now() step 1d

Sortie

LastWeek
2015-12-05 09:10:04.627
2015-12-06 09:10:04.627
...
2015-12-12 09:10:04.627

Combiner des heures d’arrêt différentes

L’exemple suivant montre comment étendre les plages pour utiliser plusieurs arrêts à l’aide de l’opérateur 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

Sortie

Heure
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

Plage à l’aide de paramètres

L’exemple suivant montre comment utiliser l’opérateur range avec des paramètres, qui sont ensuite étendus et consommés en tant que table.

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

Sortie

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

Étapes incrémentées

L’exemple suivant crée une table avec une seule colonne appelée Steps dont le type est long et génère des valeurs comprises entre un et huit incrémentés par trois.

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