Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
MAXFenster-Funktion
Die MAX Fensterfunktion gibt das Maximum der Werte der Eingabeausdrücke zurück. Die MAX Funktion arbeitet mit numerischen Werten und ignoriert NULL Werte.
Syntax
MAX ( [ ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )
Argumente
- Ausdruck
-
Die Zielspalte oder der Ausdruck, für die/den die Funktion ausgeführt wird.
- ALL
-
Mit dem Argument ALL behält die Funktion alle doppelten Werte aus dem Ausdruck bei. ALList die Standardeinstellung. DISTINCT wird nicht unterstützt.
- OVER
-
Eine Klausel, die die Fensterklauseln für die Aggregationsfunktionen angibt. Die OVER Klausel unterscheidet Fensteraggregationsfunktionen von normalen Aggregationsfunktionen für Gruppen.
- PARTITIONVON expr_list
-
Definiert das Fenster für die MAX Funktion in Form eines oder mehrerer Ausdrücke.
- ORDERVON order_list
-
Sortiert die Zeilen innerhalb der einzelnen Partitionen. Wenn kein PARTITION BY angegeben ist, verwendet ORDER BY die gesamte Tabelle.
- frame_clause
-
Wenn eine ORDER BY-Klausel für eine Aggregatfunktion verwendet wird, ist eine explizite Frame-Klausel erforderlich. Die Rahmenklausel gibt den Satz von Zeilen im Fenster einer Funktion genauer an, einschließlich oder ausschließlich Sätzen von Zeilen innerhalb des geordneten Ergebnisses. Die Frame-Klausel besteht aus dem ROWS Schlüsselwort und den zugehörigen Spezifizierern. Siehe Übersicht über die Syntax von Fensterfunktionen.
Datentypen
Akzeptiert alle Datentypen als Eingabe. Gibt denselben Datentyp wie expression zurück.
Beispiele
Das folgende Beispiel zeigt die Verkaufs-ID, die Menge und die maximale Menge ab dem Beginn des Datenfensters an:
select salesid, qty, max(qty) over (order by salesid rows unbounded preceding) as max from winsales order by salesid; salesid | qty | max ---------+-----+----- 10001 | 10 | 10 10005 | 30 | 30 10006 | 10 | 30 20001 | 20 | 30 20002 | 20 | 30 30001 | 10 | 30 30003 | 15 | 30 30004 | 20 | 30 30007 | 30 | 30 40001 | 40 | 40 40005 | 10 | 40 (11 rows)
Eine Beschreibung der WINSALES Tabelle finden Sie unterBeispieltabelle mit Beispielen von Fensterfunktionen.
Das folgende Beispiel zeigt die Verkaufs-ID, die Menge und die maximale Menge in einem eingeschränkten Rahmen an:
select salesid, qty, max(qty) over (order by salesid rows between 2 preceding and 1 preceding) as max from winsales order by salesid; salesid | qty | max ---------+-----+----- 10001 | 10 | 10005 | 30 | 10 10006 | 10 | 30 20001 | 20 | 30 20002 | 20 | 20 30001 | 10 | 20 30003 | 15 | 20 30004 | 20 | 15 30007 | 30 | 20 40001 | 40 | 30 40005 | 10 | 40 (11 rows)