Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Retourneert 1 als de gebeurtenis de eerste gebeurtenis is binnen een bepaald vast interval, of anders 0. De intervallen worden op dezelfde manier uitgelijnd als tumblingvensters (zie Tumblingvenster). ISFIRST wordt niet beïnvloed door predicaten in WHERE-component, joinvoorwaarden in JOIN-component of groeperingsexpressies in GROUP BY-component van de huidige query. ).
Syntaxis
ISFIRST ( timeunit , duration )
[ OVER ( [PARTITION BY partition_by_expression] [WHEN when_expression]) ]
Argumenten
tijdeenheid
Is de tijdseenheid voor de duur. De volgende tabel bevat alle geldige tijdeenheidwaarden --- beide vol
namen en afkortingen kunnen worden gebruikt in de query.
| Tijdeenheid | Afkortingen |
|---|---|
| dagen | dd, d |
| uur | Hh |
| minuut | mi, n |
| tweede | ss, s |
| milliseconde | mevrouw |
| microseconde | Mcs |
duur
Een groot geheel getal dat het aantal tijdeenheden in het interval aangeeft. Bijvoorbeeld
ISFIRST(minuut, 15) bekijkt intervallen van 15 minuten. De begintijden van de intervallen zijn
uitgelijnd op dezelfde manier als in tumblingvensters (zie Tumblingvenster).
[ OVER ( partition_by_clause [when_clause]) ]
Met de OVER-component wordt de subset opgegeven van de gebeurtenissen waaronder deze gebeurtenis is gerangschikt:
PARTITION BY partition_by_expression component deelt de resultatenset die wordt geproduceerd door de FROM
component in partities waarop de functie wordt toegepast. Met andere woorden, elke gebeurtenis wordt vergeleken
alleen voor dergelijke andere gebeurtenissen die de waarde van partition_by_expression delen. Als dit niet is opgegeven, worden alle
gebeurtenis wordt gerangschikt met betrekking tot alle andere gebeurtenissen binnen het tijdsinterval.
WANNEER when_expression component een Booleaanse voorwaarde opgeeft voor de gebeurtenissen die moeten worden overwogen.
Met andere woorden, elke gebeurtenis wordt alleen gerangschikt in vergelijking met dergelijke andere gebeurtenissen die voldoen aan
when_expression. Als de gebeurtenis zelf niet voldoet aan when_expression, retourneert de functie 0.
De WHEN-component is optioneel.
Retourtypen
bigint (respectievelijk '1' of '0' die 'waar' of 'onwaar' vertegenwoordigt)
Algemene opmerkingen
ISFIRST is niet-deterministisch. Gebeurtenissen worden in tijdelijke volgorde verwerkt. Als er verschillende gebeurtenissen zijn met dezelfde tijdstempelgebeurtenissen worden verwerkt in de volgorde van aankomst.
Het toepassen van ISFIRST op de resultatenset van een vensterfunctie kan onverwachte resultaten opleveren. Vensterfuncties wijzigen de tijdstempel van gebeurtenissen, omdat elke vensterbewerking de gebeurtenis aan het einde van het venster uitvoert. De huidige tijdstempel van een gebeurtenis kan worden geopend met system.timestamp(), na een vensterbewerking verschilt deze van het oorspronkelijke kenmerk van de gebeurtenistijd. Als ISFIRST niet kan worden verplaatst vóór de vensterbewerking, kunt u overwegen CollectTop te gebruiken, te ordenen op basis van de oorspronkelijke gebeurtenistijd.
Voorbeelden
Geef aan of een sensorleesbeurt de eerste binnen 10 minuten tumblingintervallen is:
SELECT
reading,
ISFIRST(mi, 10) as first
FROM Input
Geef aan of een gebeurtenis de eerste binnen 10 minuten tumblingintervallen per deviceid is:
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid) as first
FROM Input
Geef aan of een gebeurtenis de eerste gebeurtenis is met een waarde groter dan 50 binnen 10 minuten tumblingintervallen
per 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'