ISFIRST (Azure Stream Analytics)
Olay belirli bir sabit aralıktaki ilk olaysa 1 veya aksi takdirde 0 döndürür. Aralıklar, atlayan pencerelerle aynı şekilde hizalanır (bkz. Atlayan Pencere). ISFIRST WHERE yan tümcesindeki koşullardan, JOIN yan tümcesindeki birleştirme koşullarından veya geçerli sorgunun GROUP BY yan tümcesindeki ifadeleri gruplandırmadan etkilenmez. ).
Söz dizimi
ISFIRST ( timeunit , duration )
[ OVER ( [PARTITION BY partition_by_expression] [WHEN when_expression]) ]
Bağımsız değişkenler
zaman birimi
Sürenin zaman birimidir. Aşağıdaki tabloda her ikisi de dolu --- tüm geçerli zaman birimi değerleri listelemektedir
adlar ve kısaltmalar sorguda kullanılabilir.
Zaman Birimi | Kısaltma |
---|---|
gün | dd, d |
saat | hh |
dakika | mi, n |
saniye | ss, s |
milisaniye | Bayan |
Microsecond | Mcs |
Süre
Aralıktaki zaman birimi sayısını belirten büyük bir tamsayı. Örneğin,
ISFIRST (dakika, 15) 15 dakikalık aralıklara bakar. Aralıkların başlangıç saatleri şunlardır:
atlayan pencerelerle aynı şekilde hizalanır (bkz. Atlayan Pencere (Azure Stream Analytics)).
[ OVER ( partition_by_clause [when_clause]) ]
OVER yan tümcesi, bu olayın derecelendiği olayların alt kümesini belirtir:
PARTITION BY partition_by_expression yan tümcesi, FROM tarafından üretilen sonuç kümesini böler
yan tümcesini işlevin uygulandığı bölümlere ekleyin. Başka bir deyişle, her olay karşılaştırılır
yalnızca partition_by_expression değerini paylaşan bu tür diğer olaylar için. Belirtilmezse, her
olay, zaman aralığındaki diğer tüm olaylara göre sıralanır.
WHEN when_expression yan tümcesi, dikkate alınması gereken olaylar için bir boole koşulu belirtir.
Başka bir deyişle, her olay yalnızca tatmin eden diğer olaylara göre sıralanır
when_expression. Olayın kendisi when_expression karşılamıyorsa işlev 0 döndürür.
WHEN yan tümcesi isteğe bağlıdır.
Dönüş Türleri
bigint (sırasıyla 'true' veya 'false' temsil eden '1' veya '0' )
Genel Açıklamalar
ISFIRST belirsizdir. Olaylar zamana bağlı olarak işlenir. Aynı zaman damgasına sahip birkaç olay varsa, olaylar varış sırasına göre işlenir.
Bir pencereleme işlevinin sonuç kümesine ISFIRST uygulamak beklenmeyen sonuçlara neden olabilir. Pencereleme işlevleri olayların zaman damgasını değiştirir, her pencere işlemi pencerenin sonunda olay çıkışı sağlar. Bir olayın geçerli zaman damgasına system.timestamp() ile erişilebilir, bir pencere işleminden sonra özgün olay zamanı özniteliğinden farklılık gösterir. ISFIRST, pencere işleminden önce taşınamıyorsa CollectTop kullanarak özgün olay zamanına göre sıralamayı göz önünde bulundurun.
Örnekler
Bir algılayıcı okuma olayının 10 dakikalık yuvarlanma aralıkları içinde ilk olup olmadığını belirtin:
SELECT
reading,
ISFIRST(mi, 10) as first
FROM Input
Bir olayın deviceid başına 10 dakikalık yuvarlanma aralıkları içinde ilk olup olmadığını belirtin:
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid) as first
FROM Input
Bir olayın 10 dakikalık yuvarlanma aralıkları içinde değeri 50'den büyük olan ilk olay olup olmadığını belirtin
deviceid başına:
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'