

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fungsi jendela SUM
<a name="r_WF_SUM"></a>

 Fungsi jendela SUM mengembalikan jumlah kolom input atau nilai ekspresi. Fungsi SUM bekerja dengan nilai numerik dan mengabaikan nilai NULL.

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

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

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

 *ekspresi*   
Kolom target atau ekspresi tempat fungsi beroperasi. 

SEMUA   
Dengan argumen ALL, fungsi mempertahankan semua nilai duplikat dari ekspresi. ALL adalah default. DISTINCT tidak didukung.

DI ATAS   
Menentukan klausa jendela untuk fungsi agregasi. Klausa OVER membedakan fungsi agregasi jendela dari fungsi agregasi set normal.

PARTISI OLEH *expr\_list*   
Mendefinisikan jendela untuk fungsi SUM dalam hal satu atau lebih ekspresi.

PESANAN BERDASARKAN *order\_list*   
Mengurutkan baris dalam setiap partisi. Jika tidak ada PARTITION BY yang ditentukan, ORDER BY menggunakan seluruh tabel.

 *frame\_clause*   
Jika klausa ORDER BY digunakan untuk fungsi agregat, klausa bingkai eksplisit diperlukan. Klausa bingkai menyempurnakan kumpulan baris di jendela fungsi, termasuk atau mengecualikan kumpulan baris dalam hasil yang diurutkan. Klausa bingkai terdiri dari kata kunci ROWS dan penentu terkait. Lihat [Ringkasan sintaks fungsi jendela](c_Window_functions.md#r_Window_function_synopsis).

## Jenis Data
<a name="c_Supported_data_types_wf_sum"></a>

Tipe argumen yang didukung oleh fungsi SUM adalah SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL, dan DOUBLE PRECISION.

Jenis pengembalian yang didukung oleh fungsi SUM adalah: 
+ BIGINT untuk argumen SMALLINT atau INTEGER
+ NUMERIK untuk argumen BIGINT
+ PRESISI GANDA untuk argumen floating-point

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

Contoh berikut membuat jumlah kumulatif (bergulir) jumlah penjualan yang diurutkan berdasarkan tanggal dan ID penjualan: 

```
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)
```

 Untuk deskripsi tabel WINSALES, lihat[Contoh tabel untuk contoh fungsi jendela](c_Window_functions.md#r_Window_function_example).

Contoh berikut membuat jumlah kumulatif (bergulir) jumlah penjualan berdasarkan tanggal, mempartisi hasil dengan ID penjual, dan memesan hasil berdasarkan tanggal dan ID penjualan dalam partisi: 

```
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)
```

Contoh berikut memberi nomor semua baris secara berurutan dalam kumpulan hasil, diurutkan oleh kolom SELLERID dan 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)
```

Untuk deskripsi tabel WINSALES, lihat[Contoh tabel untuk contoh fungsi jendela](c_Window_functions.md#r_Window_function_example). 

Contoh berikut memberi nomor semua baris secara berurutan dalam kumpulan hasil, partisi hasil dengan SELLERID, dan urutkan hasilnya berdasarkan SELLERID dan SALESID dalam partisi: 

```
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)
```