Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileExactInclusive

quantileExactInclusive

Introduit dans : v20.1.0

À l’instar de 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 inclusive pour calculer les quantiles, comme décrit dans la méthode R-7.

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-1)*p)] + ((n-1)*p - floor((n-1)*p)) * (x[floor((n-1)*p)+1] - x[floor((n-1)*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).

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

quantileExactInclusive(level)(expr)

Paramètres

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

Arguments

  • expr — Expression sur les valeurs de la colonne renvoyant 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 inclusif exact

SELECT quantileExactInclusive(0.25)(number) FROM numbers(5);
┌─quantileExactInclusive(0.25)(number)─┐
│                                    1 │
└──────────────────────────────────────┘

Calcul de plusieurs niveaux de quantiles

SELECT quantileExactInclusive(0.1)(number), quantileExactInclusive(0.9)(number) FROM numbers(10);
┌─quantileExactInclusive(0.1)(number)─┬─quantileExactInclusive(0.9)(number)─┐
│                  0.8999999999999999 │                                 8.1 │
└─────────────────────────────────────┴─────────────────────────────────────┘
Navigation