Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileExactExclusive

quantileExactExclusive

Introduit dans : v20.1.0

Semblable à quantileExact, cette fonction calcule le quantile exact d’une séquence de données numériques.

Cette fonction est équivalente à quantileExact, mais utilise la méthode exclusive pour calculer les quantiles, comme décrit dans la méthode R-6.

Lors de l’utilisation de cette fonction, le quantile est calculé de sorte que la formule d’interpolation pour un quantile donné p prenne la forme suivante : x[floor(n*p)] + (n*p - floor(n*p)) * (x[floor(n*p)+1] - x[floor(n*p)]), où x est le tableau trié.

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

Lors de l’utilisation de plusieurs fonctions quantile* avec différents niveaux dans une requête, les états internes ne sont pas combinés (c’est-à-dire que la requête est moins efficace qu’elle pourrait l’être). Dans ce cas, utilisez la fonction quantiles.

Syntaxe

quantileExactExclusive(level)(expr)

Paramètres

  • level — Niveau du quantile. Nombre constant à virgule flottante compris entre 0 et 1 (exclus). Nous recommandons d'utiliser une valeur level dans l'intervalle (0.01, 0.99). Float*

Arguments

  • expr — Expression sur les valeurs de la colonne produisant des types de données numériques, Date ou DateTime. (U)Int* ou Float* ou Date ou DateTime

Valeur renvoyée

Renvoie le quantile du niveau spécifié. Float64

Exemples

Calcul du quantile exclusif exact

SELECT quantileExactExclusive(0.25)(number) FROM numbers(5);
┌─quantileExactExclusive(0.25)(number)─┐
│                                  0.5 │
└──────────────────────────────────────┘

Calcul de plusieurs niveaux de quantile

SELECT quantileExactExclusive(0.1)(number), quantileExactExclusive(0.9)(number) FROM numbers(10);
┌─quantileExactExclusive(0.1)(number)─┬─quantileExactExclusive(0.9)(number)─┐
│                 0.10000000000000009 │                                 8.9 │
└─────────────────────────────────────┴─────────────────────────────────────┘
Navigation