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.
AVGfonction de fenêtre
La fonction AVG window renvoie la moyenne (moyenne arithmétique) des valeurs d'expression d'entrée. La AVG fonction fonctionne avec des valeurs numériques et ignore NULL les valeurs.
Syntaxe
AVG ( [ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )
Arguments
- expression
-
Colonne cible ou expression sur laquelle la fonction opère.
- ALL
-
Avec l'argumentALL, la fonction conserve toutes les valeurs dupliquées de l'expression à des fins de comptage. ALLest la valeur par défaut. DISTINCT n’est pas pris en charge.
- OVER
-
Spécifie les clauses de fenêtrage des fonctions d’agrégation. La OVER clause distingue les fonctions d'agrégation de fenêtres des fonctions d'agrégation d'ensembles normales.
- PARTITIONPAR expr_list
-
Définit la fenêtre de la AVG fonction en termes d'une ou de plusieurs expressions.
- ORDERPAR order_list
-
Trie les lignes dans chaque partition. Si aucun PARTITION BY n'est spécifié, ORDER BY utilise la table entière.
- frame_clause
-
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 frame comprend le ROWS mot-clé et les spécificateurs associés. Consultez Récapitulatif de la syntaxe de la fonction de fenêtrage.
Types de données
Les types d'arguments pris en charge par la AVG fonction sont SMALLINT INTEGERBIGINT,NUMERIC,DECIMAL,REAL, et DOUBLEPRECISION.
Les types de retour pris en charge par la AVG fonction sont les suivants :
-
BIGINTpour SMALLINT nos INTEGER arguments
-
NUMERICpour les BIGINT arguments
-
DOUBLEPRECISIONpour les arguments à virgule flottante
Exemples
L’exemple suivant montre le calcul d’une moyenne mobile des quantités vendues par date, et le classement des résultats par ID de date et ID de vente :
select salesid, dateid, sellerid, qty, avg(qty) over (order by dateid, salesid rows unbounded preceding) as avg from winsales order by 2,1; salesid | dateid | sellerid | qty | avg ---------+------------+----------+-----+----- 30001 | 2003-08-02 | 3 | 10 | 10 10001 | 2003-12-24 | 1 | 10 | 10 10005 | 2003-12-24 | 1 | 30 | 16 40001 | 2004-01-09 | 4 | 40 | 22 10006 | 2004-01-18 | 1 | 10 | 20 20001 | 2004-02-12 | 2 | 20 | 20 40005 | 2004-02-12 | 4 | 10 | 18 20002 | 2004-02-16 | 2 | 20 | 18 30003 | 2004-04-18 | 3 | 15 | 18 30004 | 2004-04-18 | 3 | 20 | 18 30007 | 2004-09-07 | 3 | 30 | 19 (11 rows)
Pour une description du WINSALES tableau, voirExemple de tableau contenant des exemples de fonctions de fenêtrage.