> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Calcule simultanément plusieurs quantiles approximatifs pour différents niveaux à l’aide de l’algorithme t-digest, en tenant compte du poids de chaque élément.

# quantilesTDigestWeighted

<div id="quantilesTDigestWeighted">
  ## quantilesTDigestWeighted
</div>

Introduit dans : v20.1.0

Calcule simultanément plusieurs [quantiles](https://en.wikipedia.org/wiki/Quantile) approximatifs d’une séquence de données numériques à différents niveaux, à l’aide de l’algorithme [t-digest](https://github.com/tdunning/t-digest/blob/master/docs/t-digest-paper/histo.pdf).
La fonction prend en compte le poids de chaque élément de la séquence.

Cette fonction est équivalente à [`quantileTDigestWeighted`](/docs/fr/reference/functions/aggregate-functions/quantileTDigestWeighted), mais elle permet de calculer plusieurs niveaux de quantile en un seul passage, ce qui est plus efficace que d’appeler des fonctions de quantile séparées.

L’erreur maximale est de 1 %. La consommation de mémoire est de `log(n)`, où `n` représente le nombre de valeurs.

Les performances de cette fonction sont inférieures à celles de [`quantiles`](/docs/fr/reference/functions/aggregate-functions/quantiles) ou [`quantilesTiming`](/docs/fr/reference/functions/aggregate-functions/quantilesTiming).
En termes de ratio entre la taille de l’état et la précision, cette fonction est bien meilleure que `quantiles`.

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

<Note>
  L’utilisation de `quantilesTDigestWeighted` [n’est pas recommandée pour les très petits jeux de données](https://github.com/tdunning/t-digest/issues/167#issuecomment-828650275) et peut entraîner une erreur importante.
  Dans ce cas, envisagez plutôt d’utiliser [`quantilesTDigest`](/docs/fr/reference/functions/aggregate-functions/quantilesTDigest).
</Note>

**Syntaxe**

```sql theme={null}
quantilesTDigestWeighted(level1, level2, ...)(expr, weight)
```

**Paramètres**

* `level` — Niveaux de quantiles. Un ou plusieurs nombres constants en virgule flottante compris entre 0 et 1. Nous recommandons d’utiliser des valeurs `level` dans la plage `[0.01, 0.99]`. [`Float*`](/docs/fr/reference/data-types/float)

**Arguments**

* `expr` — Expression sur les valeurs de la colonne produisant un type de données numérique, `Date` ou `DateTime`. [`(U)Int*`](/docs/fr/reference/data-types/int-uint) ou [`Float*`](/docs/fr/reference/data-types/float) ou [`Date`](/docs/fr/reference/data-types/date) ou [`DateTime`](/docs/fr/reference/data-types/datetime)
* `weight` — Colonne contenant les poids des éléments de la séquence. Le poids correspond au nombre d’occurrences de la valeur. [`UInt*`](/docs/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Tableau de quantiles approximatifs pour les niveaux spécifiés, dans le même ordre que celui dans lequel les niveaux ont été spécifiés. Pour les entrées `Date` et `DateTime`, le format de sortie correspond au format d’entrée. [`Array(Float32)`](/docs/fr/reference/data-types/array) ou [`Array(Date)`](/docs/fr/reference/data-types/array) ou [`Array(DateTime)`](/docs/fr/reference/data-types/array)

**Exemples**

**Calcul de plusieurs quantiles pondérés avec t-digest**

```sql title=Query theme={null}
SELECT quantilesTDigestWeighted(0.25, 0.5, 0.75)(number, 1) FROM numbers(100);
```

```response title=Response theme={null}
┌─quantilesTDigestWeighted(0.25, 0.5, 0.75)(number, 1)──┐
│ [24.75,49.5,74.25]                                    │
└───────────────────────────────────────────────────────┘
```
