quantileExactLow
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 passées 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) comparaisons.
La valeur renvoyée dépend du niveau de quantile et du nombre d’éléments dans la sélection. Autrement dit, si le niveau est de 0.5, la fonction renvoie la médiane inférieure pour un nombre pair d’éléments et la valeur médiane centrale pour un nombre impair d’éléments. La médiane est calculée de manière similaire à l’implémentation median_low utilisée en Python.
Pour tous les autres niveaux, l’élément à l’index correspondant à la valeur de level * size_of_array est renvoyé.
Lors de l’utilisation de plusieurs fonctions quantile* avec différents niveaux 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
quantileExactLow(level)(expr)Alias : medianExactLow
Paramètres
level— Facultatif. Niveau du quantile. Nombre à virgule flottante constant compris entre 0 et 1. Nous recommandons d’utiliser une valeur delevelcomprise dans l’intervalle[0.01, 0.99]. Valeur par défaut : 0.5. Pourlevel=0.5, la fonction calcule la médiane.Float*
Arguments
expr— Expression appliquée aux valeurs de la colonne, renvoyant un type de données numérique,Date,DateTimeouDateTime64.(U)Int*ouFloat*ouDecimal*ouDateouDateTimeouDateTime64
Valeur renvoyée
Renvoie le quantile du niveau spécifié. Pour les types de données numériques, le format de sortie correspond au format d’entrée. (U)Int* ou Float* ou Decimal* ou Date ou DateTime ou DateTime64
Exemples
Calcul exact du quantile inférieur
SELECT quantileExactLow(number) FROM numbers(10);┌─quantileExactLow(number)─┐
│ 4 │
└──────────────────────────┘Calcul d’un niveau de quantile donné
SELECT quantileExactLow(0.1)(number) FROM numbers(10);┌─quantileExactLow(0.1)(number)─┐
│ 1 │
└───────────────────────────────┘