Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
✅ Azure Stream Analytics ✅ Fabric Eventstream
För varje rad avgör OVER-satsen gruppering av rader innan en associerad aggregerings- 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 satserna SELECT, WHERE, JOIN eller GROUP BY.
OVER-satsen grupperar rader direkt från frågeindata. Det 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 aggregeringsfunktioner med OVER-satsen:
- SUMMA
- 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
Argumentpunkter
<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önsterfunktioner ä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 händelsetidsattributet.
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
Skicka 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