

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# Die Fensterfunktion SUM
<a name="r_WF_SUM"></a>

 Die Fensterfunktion SUM gibt die Summe der Eingabespalten- oder Ausdruckswerte zurück. Die Funktion SUM ist mit numerischen Werten kompatibel und ignoriert NULL-Werte.

## Syntax
<a name="r_WF_SUM-synopsis"></a>

```
SUM ( [ ALL ] expression ) OVER
(
[ PARTITION BY expr_list ]
[ ORDER BY order_list 
                        frame_clause ]
)
```

## Argumente
<a name="r_WF_SUM-arguments"></a>

 *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 duplizierten Werte aus dem Ausdruck bei. ALL ist das Standardargument. DISTINCT wird nicht unterstützt.

OVER   
Gibt die Fensterklauseln für die Aggregationsfunktionen an. Die OVER-Klausel unterscheidet Fensteraggregationsfunktionen von normalen Satzaggregationsfunktionen.

PARTITION BY *expr\$1list*   
Definiert das Fenster für die SUM-Funktion in Bezug auf mindestens einen Ausdruck.

ORDER BY *order\$1list*   
Sortiert die Zeilen innerhalb der einzelnen Partitionen. Wenn PARTITION BY nicht angegeben ist, verwendet ORDER BY die gesamte Tabelle.

 *frame\$1clause*   
Wenn eine ORDER BY-Klausel für eine Aggregationsfunktion verwendet wird, ist eine explizite Rahmenklausel 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 Rahmenklausel besteht aus dem Schlüsselwort ROWS und verknüpften Spezifikatoren. Siehe [Übersicht über die Syntax von Fensterfunktionen](c_Window_functions.md#r_Window_function_synopsis).

## Datentypen
<a name="c_Supported_data_types_wf_sum"></a>

Die von der Funktion SUM unterstützten Argumenttypen sind SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL und DOUBLE PRECISION.

Die von der Funktion SUM unterstützten Rückgabetypen sind: 
+ BIGINT für SMALLINT- oder INTEGER-Argumente
+ NUMERIC für BIGINT-Argumente
+ DOUBLE PRECISION für Gleitkomma-Argumente

## Beispiele
<a name="r_WF_SUM-examples"></a>

Im folgenden Beispiel wird eine kumulative (gleitende) Summe von Verkaufsmengen nach Datum und Verkaufs-ID erstellt: 

```
select salesid, dateid, sellerid, qty,
sum(qty) over (order by dateid, salesid rows unbounded preceding) as sum
from winsales
order by 2,1;

salesid |   dateid   | sellerid | qty | sum
---------+------------+----------+-----+-----
30001 | 2003-08-02 |        3 |  10 |  10
10001 | 2003-12-24 |        1 |  10 |  20
10005 | 2003-12-24 |        1 |  30 |  50
40001 | 2004-01-09 |        4 |  40 |  90
10006 | 2004-01-18 |        1 |  10 | 100
20001 | 2004-02-12 |        2 |  20 | 120
40005 | 2004-02-12 |        4 |  10 | 130
20002 | 2004-02-16 |        2 |  20 | 150
30003 | 2004-04-18 |        3 |  15 | 165
30004 | 2004-04-18 |        3 |  20 | 185
30007 | 2004-09-07 |        3 |  30 | 215
(11 rows)
```

 Eine Beschreibung der Tabelle WINSALES finden Sie unter [Beispieltabelle mit Beispielen von Fensterfunktionen](c_Window_functions.md#r_Window_function_example).

Im folgenden Beispiel wird eine kumulative (gleitende) Summe von Verkaufsmengen nach Datum erstellt, die Ergebnisse nach Verkäufer-ID partitioniert und die Ergebnisse innerhalb der Partition nach Datum und Verkaufs-ID geordnet: 

```
select salesid, dateid, sellerid, qty,
sum(qty) over (partition by sellerid
order by dateid, salesid rows unbounded preceding) as sum
from winsales
order by 2,1;

salesid |   dateid   | sellerid | qty | sum
---------+------------+----------+-----+-----
30001 | 2003-08-02 |        3 |  10 |  10
10001 | 2003-12-24 |        1 |  10 |  10
10005 | 2003-12-24 |        1 |  30 |  40
40001 | 2004-01-09 |        4 |  40 |  40
10006 | 2004-01-18 |        1 |  10 |  50
20001 | 2004-02-12 |        2 |  20 |  20
40005 | 2004-02-12 |        4 |  10 |  50
20002 | 2004-02-16 |        2 |  20 |  40
30003 | 2004-04-18 |        3 |  15 |  25
30004 | 2004-04-18 |        3 |  20 |  45
30007 | 2004-09-07 |        3 |  30 |  75
(11 rows)
```

Im folgenden Beispiel werden alle Zeilen im Ergebnissatz sequenziell nummeriert, geordnet nach den Spalten SELLERID und SALESID: 

```
select salesid, sellerid, qty,
sum(1) over (order by sellerid, salesid rows unbounded preceding) as rownum
from winsales
order by 2,1;

salesid | sellerid |  qty | rownum
--------+----------+------+--------
10001 |        1 |   10 |     1
10005 |        1 |   30 |     2
10006 |        1 |   10 |     3
20001 |        2 |   20 |     4
20002 |        2 |   20 |     5
30001 |        3 |   10 |     6
30003 |        3 |   15 |     7
30004 |        3 |   20 |     8
30007 |        3 |   30 |     9
40001 |        4 |   40 |    10
40005 |        4 |   10 |    11
(11 rows)
```

Eine Beschreibung der Tabelle WINSALES finden Sie unter [Beispieltabelle mit Beispielen von Fensterfunktionen](c_Window_functions.md#r_Window_function_example). 

Im folgenden Beispiel werden alle Zeilen im Ergebnissatz sequenziell nummeriert, die Ergebnisse nach SELLERID partitioniert und die Ergebnisse innerhalb der Partition nach SELLERID und SALESID geordnet: 

```
select salesid, sellerid, qty,
sum(1) over (partition by sellerid
order by sellerid, salesid rows unbounded preceding) as rownum
from winsales
order by 2,1;

salesid | sellerid | qty | rownum
---------+----------+-----+--------
10001 |        1 |  10 |      1
10005 |        1 |  30 |      2
10006 |        1 |  10 |      3
20001 |        2 |  20 |      1
20002 |        2 |  20 |      2
30001 |        3 |  10 |      1
30003 |        3 |  15 |      2
30004 |        3 |  20 |      3
30007 |        3 |  30 |      4
40001 |        4 |  40 |      1
40005 |        4 |  10 |      2
(11 rows)
```