Passer au contenu principal

quantileExactHigh

Introduit dans : v20.8.0 Semblable à quantileExact, cette fonction calcule le quantile exact d’une séquence de données numériques. Pour obtenir la valeur exacte, toutes les valeurs transmises sont regroupées dans un tableau, qui est ensuite entièrement trié. La complexité de l’algorithme de tri est de O(N·log(N)), où N = std::distance(first, last). La valeur renvoyée dépend du niveau de quantile et du nombre d’éléments de la sélection. Autrement dit, si le niveau est de 0.5, la fonction renvoie la médiane supérieure lorsqu’il y a un nombre pair d’éléments, et la valeur médiane centrale lorsqu’il y a un nombre impair d’éléments. La médiane est calculée de manière similaire à l’implémentation median_high utilisée en Python. Pour tous les autres niveaux, l’élément à l’index correspondant à la valeur de level * size_of_array est renvoyé. Lorsque plusieurs fonctions quantile* avec des niveaux différents sont utilisées dans une requête, les états internes ne sont pas combinés (autrement dit, la requête s’exécute moins efficacement qu’elle ne le pourrait). Dans ce cas, utilisez la fonction quantiles. Syntaxe
quantileExactHigh(level)(expr)
Alias : medianExactHigh Paramètres
  • level — Facultatif. Niveau du quantile. Nombre constant à virgule flottante compris entre 0 et 1. Nous recommandons d’utiliser une valeur de level comprise dans l’intervalle [0.01, 0.99]. Valeur par défaut : 0.5. Pour level=0.5, la fonction calcule la médiane. Float*
Arguments
  • expr — Expression appliquée aux valeurs de la colonne, produisant des types de données numériques, Date ou DateTime. (U)Int* ou Float* ou Decimal* ou Date ou DateTime
Valeur renvoyée Renvoie le quantile du niveau spécifié. Float64 ou Date ou DateTime Exemples Calcul du quantile exact supérieur
Query
SELECT quantileExactHigh(number) FROM numbers(10);
Response
┌─quantileExactHigh(number)─┐
│                         5 │
└───────────────────────────┘
Calcul d’un quantile à un niveau spécifique
Query
SELECT quantileExactHigh(0.1)(number) FROM numbers(10);
Response
┌─quantileExactHigh(0.1)(number)─┐
│                              1 │
└────────────────────────────────┘
Dernière modification le 25 juin 2026