Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileTDigestWeighted

quantileTDigestWeighted

Introduit dans : v20.1.0

Calcule un quantile approximatif d’une séquence de données numériques à l’aide de l’algorithme t-digest. La fonction prend en compte le poids de chaque élément de la séquence.

L’erreur maximale est de 1 %. L’utilisation mémoire est de log(n), où n est le nombre de valeurs.

Les performances de cette fonction sont inférieures à celles de quantile ou de quantileTiming. En termes de rapport entre la taille de l’état et la précision, cette fonction est bien meilleure que quantile.

Le résultat dépend de l’ordre d’exécution de la requête et est non déterministe.

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

quantileTDigestWeighted(level)(expr, weight)

Alias : medianTDigestWeighted

Paramètres

  • level — Facultatif. Niveau du quantile. Nombre à virgule flottante constant compris entre 0 et 1. Nous recommandons d'utiliser une valeur level dans l'intervalle [0.01, 0.99]. Valeur par défaut : 0.5. Avec level=0.5, la fonction calcule la médiane. 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
  • weight — Colonne contenant les poids des éléments de la séquence. Le poids correspond au nombre d'occurrences d'une valeur. UInt*

Valeur renvoyée

Quantile approximatif du niveau spécifié. Pour les entrées Date et DateTime, le format de sortie correspond au format d’entrée. Float32 ou Date ou DateTime

Exemples

Calcul d'un quantile pondéré avec t-digest

SELECT quantileTDigestWeighted(number, 1) FROM numbers(10);
┌─quantileTDigestWeighted(number, 1)─┐
│                                  4 │
└────────────────────────────────────┘

Voir aussi

Navigation