Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesTDigest

quantilesTDigest

Introduit dans : v1.1.0

Calcule simultanément plusieurs quantiles approximatifs d’une séquence de données numériques à différents niveaux à l’aide de l’algorithme t-digest.

Cette fonction est équivalente à quantileTDigest, mais permet de calculer plusieurs niveaux de quantile en une seule passe, ce qui est plus efficace que d’appeler des fonctions de quantile séparées.

La consommation mémoire est de log(n), où n est le nombre de valeurs. Le résultat dépend de l’ordre d’exécution de la requête et n’est pas déterministe.

Les performances de cette fonction sont inférieures à celles de quantiles ou quantilesTiming. En termes de ratio entre la taille de State et la précision, cette fonction est bien meilleure que quantiles.

Syntaxe

quantilesTDigest(level1, level2, ...)(expr)

Paramètres

  • level — Niveaux de quantiles. Un ou plusieurs nombres constants à virgule flottante compris entre 0 et 1. Nous recommandons d'utiliser des valeurs de level dans la plage [0.01, 0.99]. Float*

Arguments

  • expr — Expression appliquée aux 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

Array de quantiles approximatifs pour les niveaux spécifiés, dans le même ordre que celui des niveaux indiqués. Pour les entrées Date et DateTime, le format de sortie correspond au format d'entrée. Array(Float32) ou Array(Date) ou Array(DateTime)

Exemples

Calcul de plusieurs quantiles avec t-digest

SELECT quantilesTDigest(0.25, 0.5, 0.75)(number) FROM numbers(100);
┌─quantilesTDigest(0.25, 0.5, 0.75)(number)─┐
│ [24,49,74]                                │
└───────────────────────────────────────────┘
Navigation