Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Fonction de fenêtrage MEDIAN

Mode de mise au point
Fonction de fenêtrage MEDIAN - 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.

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.

Calcule la valeur médiane de la plage de valeurs dans une fenêtre ou une partition. Les valeurs NULL de la plage sont ignorées.

MEDIAN est une fonction de distribution inverse qui suppose un modèle de distribution continue.

Syntaxe

MEDIAN ( median_expression ) OVER ( [ PARTITION BY partition_expression ] )

Arguments

median_expression

Expression, comme un nom de colonne, qui fournit les valeurs pour lesquelles déterminer la médiane. L’expression doit disposer d’un type de données numériques ou datetime ou être convertible implicitement en une.

OVER

Clause qui spécifie le partitionnement de fenêtrage. La clause OVER ne peut pas contenir d’ordre de fenêtrage ou de spécification de cadre de fenêtrage.

PARTITION BY partition_expression

Facultatif. Expression qui définit la plage d’enregistrements de chaque groupe dans la clause OVER.

Types de données

Le type de retour est déterminé par le type de données de median_expression. Le tableau suivant illustre le type de retour de chaque type de données median_expression.

Type d’entrée Type de retour
INT2, INT4, INT8, NUMÉRIQUE, DÉCIMAL DECIMAL
FLOAT, DOUBLE DOUBLE
DATE DATE

Notes d’utilisation

Si l’argument median_expression est un type de données DECIMAL défini avec la précision maximale de 38 chiffres, il est possible que MEDIAN renvoie un résultat inexact ou une erreur. Si la valeur de retour de la fonction MEDIAN dépasse 38 chiffres, le résultat est tronqué pour s’adapter, ce qui entraîne une perte de précision. Si, au cours de l’interpolation, un résultat intermédiaire dépasse la précision maximale, un dépassement de capacité numérique se produit et la fonction renvoie une erreur. Pour éviter ces conditions, nous vous recommandons d’utiliser un type de données avec une précision inférieure ou l’argument median_expression avec une précision inférieure.

Par exemple, une fonction SUM avec un argument DECIMAL renvoie une précision par défaut de 38 chiffres. L’échelle du résultat est identique à celle de l’argument. Par conséquent, par exemple, une fonction SUM appliquée à une colonne DECIMAL(5,2) renvoie un type de données DECIMAL(38,2).

L’exemple suivant utilise une fonction SUM dans l’argument median_expression d’une fonction MEDIAN. Le type de données de la colonne PRICEPAID est DECIMAL (8,2), la fonction SUM renvoie donc DECIMAL(38,2).

select salesid, sum(pricepaid), median(sum(pricepaid)) over() from sales where salesid < 10 group by salesid;

Pour éviter une perte potentielle de précision ou une erreur de dépassement de capacité, convertissez le résultat en un type de données DECIMAL avec une précision inférieure, comme dans l’exemple suivant.

select salesid, sum(pricepaid), median(sum(pricepaid)::decimal(30,2)) over() from sales where salesid < 10 group by salesid;

Exemples

L’exemple suivant calcule le volume de ventes médian de chaque vendeur :

select sellerid, qty, median(qty) over (partition by sellerid) from winsales order by sellerid; sellerid qty median --------------------------- 1 10 10.0 1 10 10.0 1 30 10.0 2 20 20.0 2 20 20.0 3 10 17.5 3 15 17.5 3 20 17.5 3 30 17.5 4 10 25.0 4 40 25.0

Pour obtenir une description de la table WINSALES, consultez Exemple de tableau contenant des exemples de fonctions de fenêtrage.

Rubrique suivante :

MIN

Rubrique précédente :

MAX

Sur cette page

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.