Fonction de fenêtrage AVG - Amazon Redshift

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 AVG

La fonction de fenêtrage AVG renvoie la moyenne (arithmétique) des valeurs d’expression d’entrée. La fonction AVG utilise des valeurs numériques et ignore les valeurs NULL.

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’argument ALL, la fonction conserve toutes les valeurs en double de l’expression pour le compte. 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_list

Définit la fenêtre de la fonction AVG en termes d’une ou de plusieurs expressions.

ORDER BY order_list

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

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 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.

Types de données

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

Les types de retour pris en charge par la fonction AVG sont les suivants :

  • Arguments BIGINT for SMALLINT ou INTEGER

  • Arguments NUMERIC for BIGINT

  • DOUBLE PRECISION pour 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 obtenir une description de la table WINSALES, consultez Exemple de tableau contenant des exemples de fonctions de fenêtrage.