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'

Ayrıca Bkz.

LAG (Azure Stream Analytics)
LAST (Azure Stream Analytics)