- Catégories :
Fonctions d’agrégation (général), Fonctions de la fenêtre
MEDIAN¶
Détermine la médiane d’un ensemble de valeurs.
Syntaxe¶
Fonction d’agrégation
MEDIAN( <expr> )
Fonction de fenêtre
MEDIAN( <expr> ) OVER ( [ PARTITION BY <expr2> ] )
Argument¶
expr
L’expression doit correspondre à un type de données numérique (
INTEGER
,FLOAT
,DECIMAL
ou équivalent).
Renvoie¶
Renvoie un nombre FLOAT
ou DECIMAL
(à virgule fixe), en fonction de l’entrée.
Notes sur l’utilisation¶
Si le nombre de valeurs non NULL est un nombre impair supérieur ou égal à 1, la valeur médiane (« centre ») des valeurs non NULL est renvoyée.
Si le nombre de valeurs non NULL est un nombre pair, la valeur renvoyée est égale à la moyenne des deux valeurs centrales. Par exemple, si les valeurs sont 1, 3, 5 et 20, le nombre 4 est renvoyé (la moyenne de 3 et 5).
Si toutes les valeurs sont NULL, cela renvoie NULL.
Si le nombre de valeurs non NULL est de 0, la valeur renvoyée est NULL.
DISTINCT n’est pas pris en charge pour cette fonction.
Lorsqu’il est utilisé comme une fonction de fenêtre :
Cette fonction ne prend pas en charge :
Sous-clause ORDER BY dans la clause OVER().
Cadres de fenêtre.
Exemples¶
Ceci montre comment utiliser la fonction.
Créer une table vide.
CREATE OR REPLACE TABLE aggr(k int, v decimal(10,2));Obtenir la valeur
MEDIAN
pour la colonne v. La fonction renvoie NULL, car il n’y a pas de lignes.SELECT MEDIAN (v) FROM aggr; +------------+ | MEDIAN (V) | |------------| | NULL | +------------+Insérer quelques lignes :
INSERT INTO aggr VALUES(1, 10), (1,20), (1, 21); INSERT INTO aggr VALUES(2, 10), (2, 20), (2, 25), (2, 30); INSERT INTO aggr VALUES(3, NULL);Obtenir la valeur
MEDIAN
pour chaque groupe. Note : comme le nombre de valeurs du groupe k = 2 est un nombre pair, la valeur renvoyée pour ce groupe est le point médian situé entre les deux chiffres du milieu.SELECT k, MEDIAN(v) FROM aggr GROUP BY k ORDER BY k; +---+-----------+ | K | MEDIAN(V) | |---+-----------| | 1 | 20.00000 | | 2 | 22.50000 | | 3 | NULL | +---+-----------+