Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Retourne 1 si l’événement est le premier événement dans un intervalle fixe donné, ou 0 sinon. Les intervalles sont alignés de la même façon que les fenêtres bascules (voir Fenêtre bascule). ISFIRST n’est pas affecté par les prédicats dans la clause WHERE, les conditions de jointure dans la clause JOIN ou le regroupement d’expressions dans la clause GROUP BY de la requête actuelle. ).
Syntaxe
ISFIRST ( timeunit , duration )
[ OVER ( [PARTITION BY partition_by_expression] [WHEN when_expression]) ]
Les arguments
timeunit
Unité de temps pour la durée. Le tableau suivant répertorie toutes les valeurs d’unité de temps valides --- complètes
les noms et abréviations peuvent être utilisés dans la requête.
| Timeunit | Abréviations |
|---|---|
| jour | dd, d |
| heure | Hh |
| minute | mi, n |
| deuxième | ss, s |
| milliseconde | milliseconde |
| microseconde | Mcs |
Durée
Entier volumineux qui spécifie le nombre d’unités de temps dans l’intervalle. Par exemple,
ISFIRST(minute, 15) examine les intervalles de 15 minutes. Les heures de début des intervalles sont
aligné de la même façon que dans les fenêtres bascules (voir Fenêtre bascule).
[ OVER ( partition_by_clause [when_clause]) ]
La clause OVER spécifie le sous-ensemble des événements parmi lesquels cet événement est classé :
La clause PARTITION BY partition_by_expression divise le jeu de résultats produit par FROM
clause dans les partitions auxquelles la fonction est appliquée. En d’autres termes, chaque événement est comparé
uniquement à d’autres événements qui partagent sa valeur de partition_by_expression. S’il n’est pas spécifié, chacun d’eux
l’événement est classé par rapport à tous les autres événements dans l’intervalle de temps.
La clause WHEN when_expression spécifie une condition booléenne pour que les événements soient pris en compte.
En d’autres termes, chaque événement est classé uniquement par rapport à d’autres événements qui répondent
when_expression. Si l’événement lui-même ne satisfait pas when_expression, la fonction retourne 0.
La clause WHEN est facultative.
Types de retour
bigint (soit « 1 » ou « 0 » représentant « true » ou « false » respectivement)
Remarques d'ordre général
ISFIRST n’est pas déterministe. Les événements sont traités dans l’ordre temporel. S’il existe plusieurs événements avec les mêmes événements d’horodatage sont traités dans l’ordre d’arrivée.
L’application d’ISFIRST sur le jeu de résultats d’une fonction de fenêtrage peut produire des résultats inattendus. Les fonctions de fenêtrage modifient l’horodatage des événements, car chaque opération de fenêtre génère un événement à la fin de la fenêtre. L’horodatage actuel d’un événement est accessible avec system.timestamp(), après une opération de fenêtre, elle diffère de l’attribut d’heure d’événement d’origine. Si ISFIRST ne peut pas être déplacé avant l’opération de fenêtre, envisagez d’utiliser CollectTop, en triant par heure d’événement d’origine.
Exemples
Indiquez si un événement de lecture de capteur est le premier intervalle de bascule de 10 minutes :
SELECT
reading,
ISFIRST(mi, 10) as first
FROM Input
Indiquez si un événement est le premier intervalle de bascule de 10 minutes par appareilid :
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid) as first
FROM Input
Indique si un événement est le premier événement dont la valeur est supérieure à 50 dans les intervalles de bascule de 10 minutes
par deviceid :
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid WHEN reading > 50 AND devicetype = 'thermostat') as firstAbove,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid WHEN reading < 50 AND devicetype = 'thermostat') as firstUnder
FROM Input
WHERE
devicetype = 'thermostat'