Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
✅ Azure Stream Analytics ✅ Fabric Eventstream
1 értéket ad vissza, ha az esemény az első esemény egy adott rögzített intervallumon belül, vagy 0 ellenkező esetben. Az intervallumok ugyanúgy vannak igazítva, mint a ugróablakok (lásd : Átfedésmentes ablak). Az ISFIRST-et nem érintik a WHERE záradék predikátumai, a JOIN záradék illesztési feltételei vagy az aktuális lekérdezés GROUP BY záradékában lévő csoportosítási kifejezések. ).
Szemantika
ISFIRST ( timeunit , duration )
[ OVER ( [PARTITION BY partition_by_expression] [WHEN when_expression]) ]
Érvek
timeunit
Az időtartam időegysége. Az alábbi táblázat felsorolja az összes érvényes időegység-értéket, --- mindkettő teljes
nevek és rövidítések használhatók a lekérdezésben.
Timeunit | Rövidítések |
---|---|
nap | dd, d |
óra | Hh |
perc | mi, n |
második | ss, s |
Ezredmásodperc | Ms |
mikroszekundum | Mcs |
időtartam
Egy nagy egész szám, amely az időegységek számát adja meg az intervallumban. Például:
Az ISFIRST(perc, 15) 15 perces időközöket fog vizsgálni. Az intervallumok kezdő időpontjai a következők:
ugyanúgy van igazítva, mint a csapóablakokban (lásd: Átfedésmentes ablak).
[ OVER ( partition_by_clause [when_clause]) ]
Az OVER záradék azoknak az eseményeknek a részhalmazát határozza meg, amelyek között az esemény rangsorolva van:
A PARTITION BY partition_by_expression záradék elosztja a FROM által előállított eredményhalmazt
záradékot olyan partíciókra, amelyekre a függvényt alkalmazza. Más szóval minden eseményt összehasonlítunk
partition_by_expression értékét megosztó egyéb eseményekre. Ha nincs megadva, mindegyik
az esemény az időintervallumon belül az összes többi eseményre vonatkozóan van rangsorolva.
A WHEN when_expression záradék logikai feltételt ad meg a figyelembe venni kívánt eseményekhez.
Más szóval minden esemény csak azokhoz az eseményekhez képest van rangsorolva, amelyek megfelelnek a
when_expression. Ha maga az esemény nem felel meg when_expression, a függvény 0 értéket ad vissza.
A WHEN záradék megadása nem kötelező.
Visszatérési típusok
bigint (az "1" vagy a "0" az "igaz" vagy a "hamis" értéket jelöli)
Általános megjegyzések
Az ISFIRST nemdeterminista. Az események időbeli sorrendben vannak feldolgozva. Ha több, azonos időbélyeggel rendelkező eseményt is feldolgozunk érkezési sorrendben.
Az ISFIRST alkalmazása egy ablakfüggvény eredményhalmazára váratlan eredményeket eredményezhet. Az ablakfüggvények megváltoztatják az események időbélyegét, mivel minden ablakművelet az ablak végén lévő eseményt adja ki. Egy esemény aktuális időbélyege a system.timestamp() használatával érhető el, egy ablakművelet után az eltér az eredeti eseményidő attribútumtól. Ha az ISFIRST nem helyezhető át az ablakművelet előtt, fontolja meg a CollectTop használatát, és rendeljen az eredeti eseményidő szerint.
Példák
Jelezze, hogy az érzékelő olvasási eseménye az első 10 perces ugróintervallumon belül:
SELECT
reading,
ISFIRST(mi, 10) as first
FROM Input
Adja meg, hogy egy esemény az első-e az eszközazonosítónkénti 10 perces ugróintervallumon belül:
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid) as first
FROM Input
Annak jelzése, hogy az esemény az első olyan esemény-e, amelynek értéke 50-nél nagyobb 10 perces ugróintervallumon belül
eszközazonosítónként:
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'