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
columnNamefrom
commencerto
arrêterstep
pas
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 étape est supérieure à cette valeur. |
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
L’exemple de cette section montre comment utiliser la syntaxe pour vous aider à commencer.
Les exemples de cet article utilisent des tables disponibles publiquement dans le cluster d’aide, comme la table
StormEvents
dans la base de données Exemples.
Les exemples de cet article utilisent des tables disponibles publiquement, telles que la table
StormEvents
dans l’analyse météo exemples de données.
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
Sortie
Étapes |
---|
1 |
4 |
7 |
Traces sur un intervalle de temps
L’exemple suivant montre comment l’opérateur range
peut être utilisé pour créer une table de dimension utilisée pour introduire des zéros où les données sources n’ont aucune valeur. Il faut des horodatages des quatre dernières heures et compte les traces pour chaque intervalle d’une minute. Lorsqu’il n’y a aucune trace pour un intervalle spécifique, le nombre est égal à zéro.
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