Freigeben über


Ende

✅ 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

Siehe auch

Analysefunktionen
Aggregatfunktionen