Dela via


ÖVER (Azure Stream Analytics)

För varje rad avgör OVER-satsen gruppering av rader innan en associerad mängd- eller analysfunktion tillämpas.

Du kan använda OVER-satsen var som helst där en skalär funktion tillåts. Du kan till exempel använda OVER-satsen i SELECT-, WHERE-, JOIN- eller GROUP BY-satserna.

OVER-satsen grupperar rader direkt från frågeindata. Den påverkas inte av predikat i WHERE-satsen, kopplingsvillkor i JOIN-satsen eller grupperingsvillkor i GROUP BY-satsen.

För närvarande stöds följande mängdfunktioner med OVER-satsen:

  • SUM
  • AVG
  • MIN
  • MAX

Syntax

OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])

<PARTITION BY clause> ::== PARTITION BY partition_key, ... [n]

<LIMIT DURATION clause> ::== LIMIT DURATION (unit, length)

<WHEN clause> ::== WHEN boolean_expression

Argument

<PARTITION BY-sats>

Anger att endast rader med samma <partition_key> kommer att beaktas för den aggregerade eller analytiska funktionen.

<LIMIT DURATION-sats>

Anger hur mycket historik från den aktuella raden som ingår i gruppen. Se DATEDIFF för en detaljerad beskrivning av enheter som stöds och deras förkortningar.

<WHEN-SATS>

Anger det booleska villkoret för de rader som ska ingå i gruppen.

Allmänna kommentarer

Om du använder en aggregerings- eller analysfunktion med OVER på resultatuppsättningen för en fönsterfunktion kan det ge oväntade resultat. Fönsterfunktionerna ändrar tidsstämpeln för händelser, eftersom varje fönsteråtgärd matar ut händelsen i slutet av fönstret. Den aktuella tidsstämpeln för en händelse kan nås med system.timestamp(), efter en fönsteråtgärd skiljer den sig från det ursprungliga attributet för händelsetid.

Exempel

Beräkna den genomsnittliga temperaturen under de senaste 5 minuterna, per sensor:

SELECT AVG(temperature) OVER (PARTITION BY id LIMIT DURATION (minute, 5))
FROM input

Utlös en avisering om resursen har varit skadad under den senaste timmen:

SELECT 1 AS alert
FROM input
WHERE MAX(healthy) OVER (PARTITION BY id LIMIT DURATION (hour, 1)) = 0

Se även

Analysfunktioner
Mängdfunktioner