- Kategorien:
Fensterfunktionen (Allgemein)
CONDITIONAL_CHANGE_EVENT¶
Gibt eine Fensterereignisnummer für jede Zeile innerhalb einer Fensterpartition zurück, wenn sich der Wert des Arguments expr1 in der aktuellen Zeile vom Wert von expr1 in der vorherigen Zeile unterscheidet. Die Fensterereignisnummer beginnt bei 0 und wird um 1 erhöht, um die Anzahl der Änderungen innerhalb dieses Fensters anzuzeigen.
Syntax¶
Argumente¶
expr1Dies ist ein Ausdruck, der mit dem Ausdruck der vorherigen Zeile verglichen wird.
expr2Dies ist der optionale Ausdruck, nach dem partitioniert werden soll.
expr3Dies ist der Ausdruck, nach dem in jeder Partition sortiert werden soll.
Nutzungshinweise¶
Der Ausdruck
CONDITIONAL_CHANGE_EVENT (expr1) OVER (window_frame)berechnet sich wie folgt:CONDITIONAL_TRUE_EVENT( <Ausdruck1> != LAG(<Ausdruck1>) OVER(window_frame)) OVER(window_frame)Weitere Informationen zu CONDITIONAL_TRUE_EVENT finden Sie unter CONDITIONAL_TRUE_EVENT.
Beispiele¶
Hier sehen Sie, wie oft der Strom ausgefallen und wieder eingeschaltet wurde (d. h. wie häufig die Spannung auf 0 gefallen ist oder wiederhergestellt wurde). (In diesem Beispiel wird davon ausgegangen, dass das Abtasten der Spannung alle 15 Minuten ausreichend ist. Da Stromausfälle weniger als 15 Minuten dauern können, möchten Sie in der Regel häufigere Stichproben oder die Abfrageergebnisse als Approximation behandeln.)
Erstellen und Laden der Tabelle:
Dies zeigt die Stichproben, für die die Spannung null war, unabhängig davon, ob diese Null-Volt-Ereignisse Teil desselben Stromausfalls oder verschiedener Stromausfälle waren.
Dies zeigt die Stichproben zusammen mit einer Spalte, die angibt, ob sich die Spannung geändert hat:
Dies zeigt die Zeiten, zu denen die Stromversorgung gestoppt und neu gestartet wurde:
Dies zeigt, wie oft die Stromversorgung gestoppt und neu gestartet wurde:
Dieses Beispiel veranschaulicht Folgendes:
Die Änderungsnummer innerhalb einer Partition ändert sich jedes Mal, wenn sich der angegebene Wert ändert.
NULL-Werte werden nicht als neuer oder geänderter Wert betrachtet.
Der Änderungszähler beginnt für jede Partition wieder bei 0.
Erstellen und Laden der Tabelle:
Abfragen der Tabelle:
Das nächste Beispiel zeigt Folgendes:
expr1kann ein anderer Ausdruck als eine Spalte sein. Diese Abfrage verwendet den Ausdrucko_col < 15. Die Ausgabe der Abfrage zeigt an, wann sich der Wert in „o_col“ von einem Wert unter 15 in einen Wert über oder gleich 15 ändert.expr3muss nicht mitexpr1übereinstimmen. Mit anderen Worten, der Ausdruck in der ORDER BY-Unterklausel der OVER-Klausel muss nicht mit dem Ausdruck in der Funktion CONDITIONAL_CHANGE_EVENT übereinstimmen.
Im nächsten Beispiel wird CONDITIONAL_CHANGE_EVENT mit CONDITIONAL_TRUE_EVENT verglichen:
In diesem Beispiel werden auch CONDITIONAL_CHANGE_EVENT und CONDITIONAL_TRUE_EVENT verglichen:
Hier ist ein ausführlicheres Beispiel: