

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fonction de fenêtrage SUM
<a name="r_WF_SUM"></a>

 La fonction de fenêtrage SUM renvoie la somme des valeurs de la colonne d’entrée ou de l’expression. La fonction SUM utilise des valeurs numériques et ignore les valeurs NULL.

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

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

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

 *expression*   
Colonne cible ou expression sur laquelle la fonction opère. 

ALL   
Avec l’argument ALL, la fonction conserve toutes les valeurs en double de l’expression. La valeur par défaut est ALL. DISTINCT n’est pas pris en charge.

OVER   
Spécifie les clauses de fenêtrage des fonctions d’agrégation. La clause OVER différencie les fonctions d’agrégation de fenêtrage des fonctions d’agrégation d’un ensemble normal.

PARTITION BY *expr\$1list*   
Définit la fenêtre de la fonction SUM en termes d’une ou de plusieurs expressions.

ORDER BY *order\$1list*   
Trie les lignes dans chaque partition. Si aucune clause PARTITION BY n’est spécifiée, ORDER BY utilise toute la table.

 *frame\$1clause*   
Si une clause ORDER BY est utilisée pour une fonction d’agrégation, une clause de cadre explicite est requise. La clause de cadre affine l’ensemble de lignes dans la fenêtre d’une fonction, en incluant ou en excluant des ensembles de lignes du résultat ordonné. La clause de cadre se compose du mot-clé ROWS et des spécificateurs associés. Consultez [Récapitulatif de la syntaxe de la fonction de fenêtrage](c_Window_functions.md#r_Window_function_synopsis).

## Types de données
<a name="c_Supported_data_types_wf_sum"></a>

Les types d’argument pris en charge par la fonction SUM sont SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL et DOUBLE PRECISION.

Les types de retour pris en charge par la fonction SUM sont les suivants : 
+ Arguments BIGINT for SMALLINT ou INTEGER
+ Arguments NUMERIC for BIGINT
+ DOUBLE PRECISION pour les arguments à virgule flottante

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

L’exemple suivant montre la création d’une somme cumulée (évolutive) des volumes de ventes classés par date et par ID de ventes : 

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

 Pour obtenir une description de la table WINSALES, consultez [Exemple de tableau contenant des exemples de fonctions de fenêtrage](c_Window_functions.md#r_Window_function_example).

L’exemple suivant montre la création d’une somme cumulée (évolutive) des volumes de ventes par date, le partitionnement des résultats par ID de vendeur et le classement des résultats par date et ID de ventes au sein de la partition : 

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

L’exemple suivant montre la numérotation séquentielle de toutes les lignes de l’ensemble de résultats, classées en fonction des colonnes SELLERID et 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)
```

Pour obtenir une description de la table WINSALES, consultez [Exemple de tableau contenant des exemples de fonctions de fenêtrage](c_Window_functions.md#r_Window_function_example). 

L’exemple suivant montre la numérotation séquentielle de toutes les lignes de l’ensemble de résultats, le partitionnement des résultats par SELLERID et le classement des résultats par SELLERID et SALESID au sein de la partition : 

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