Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Für jede Zeile bestimmt die OVER-Klausel die Gruppierung von Zeilen, bevor eine zugeordnete Aggregat- oder Analysefunktion angewendet wird.
Sie können die OVER-Klausel überall verwenden, wo eine skalare Funktion zulässig ist. Sie können beispielsweise die OVER-Klausel in den KLAUSELn SELECT, WHERE, JOIN oder GROUP BY verwenden.
Die OVER-Klausel gruppiert Zeilen direkt aus der Abfrageeingabe. Sie wird von Prädikaten in der WHERE-Klausel, verknüpfungsbedingungen in der JOIN-Klausel oder von Gruppierungsbedingungen in der GROUP BY-Klausel nicht beeinflusst.
Derzeit werden die folgenden Aggregatfunktionen mit der OVER-Klausel unterstützt:
- SUMME
- 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
Argumente
<PARTITION BY-Klausel>
Gibt an, dass nur die Zeilen mit demselben <partition_key> für die Aggregat- oder Analysefunktion berücksichtigt werden.
<LIMIT DURATION-Klausel>
Gibt an, wie viel Verlauf aus der aktuellen Zeile in der Gruppe enthalten ist. Eine detaillierte Beschreibung der unterstützten Einheiten und deren Abkürzungen finden Sie unter DATEDIFF .
<WHEN-KLAUSEL>
Gibt die boolesche Bedingung für die Zeilen an, die in die Gruppe eingeschlossen werden sollen.
Allgemeine Hinweise
Das Anwenden einer Aggregat- oder Analysefunktion mit OVER auf das Resultset einer Fensterfunktion kann zu unerwarteten Ergebnissen führen. Fensterfunktionen ändern den Zeitstempel von Ereignissen, da jedes Fenstervorgang das Ereignis am Ende des Fensters ausgibt. Auf den aktuellen Zeitstempel eines Ereignisses kann mit "system.timestamp()" zugegriffen werden, nachdem ein Fenstervorgang ausgeführt wurde, unterscheidet es sich vom ursprünglichen Ereigniszeit-Attribut.
Beispiele
Berechnen Sie die Durchschnittliche Temperatur in den letzten 5 Minuten pro Sensor:
SELECT AVG(temperature) OVER (PARTITION BY id LIMIT DURATION (minute, 5))
FROM input
Lösen Sie eine Warnung aus, wenn die Ressource in der letzten Stunde fehlerhaft war:
SELECT 1 AS alert
FROM input
WHERE MAX(healthy) OVER (PARTITION BY id LIMIT DURATION (hour, 1)) = 0