> ## 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.

> Calcula vários quantis aproximados usando o algoritmo t-digest em diferentes níveis de uma só vez, levando em conta o peso de cada elemento.

# quantilesTDigestWeighted

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

Introduzido em: v20.1.0

Calcula simultaneamente vários [quantis](https://en.wikipedia.org/wiki/Quantile) aproximados de uma sequência de dados numéricos em diferentes níveis usando o algoritmo [t-digest](https://github.com/tdunning/t-digest/blob/master/docs/t-digest-paper/histo.pdf).
A função leva em conta o peso de cada elemento da sequência.

Esta função é equivalente a [`quantileTDigestWeighted`](/docs/pt-BR/reference/functions/aggregate-functions/quantileTDigestWeighted), mas permite calcular vários níveis de quantil em uma única passagem, o que é mais eficiente do que chamar funções de quantil individualmente.

O erro máximo é de 1%. O consumo de memória é `log(n)`, em que `n` é o número de valores.

O desempenho dessa função é inferior ao de [`quantiles`](/docs/pt-BR/reference/functions/aggregate-functions/quantiles) ou [`quantilesTiming`](/docs/pt-BR/reference/functions/aggregate-functions/quantilesTiming).
Em termos da razão entre o tamanho do State e a precisão, esta função é muito melhor que `quantiles`.

O resultado depende da ordem de execução da consulta e é não determinístico.

<Note>
  O uso de `quantilesTDigestWeighted` [não é recomendado para conjuntos de dados muito pequenos](https://github.com/tdunning/t-digest/issues/167#issuecomment-828650275) e pode levar a um erro significativo.
  Nesse caso, considere usar [`quantilesTDigest`](/docs/pt-BR/reference/functions/aggregate-functions/quantilesTDigest) em vez disso.
</Note>

**Sintaxe**

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

**Parâmetros**

* `level` — Níveis dos quantis. Um ou mais números de ponto flutuante constantes de 0 a 1. Recomendamos usar valores de `level` no intervalo `[0.01, 0.99]`. [`Float*`](/docs/pt-BR/reference/data-types/float)

**Argumentos**

* `expr` — Expressão sobre os valores da coluna que resulta em tipos de dados numéricos, `Date` ou `DateTime`. [`(U)Int*`](/docs/pt-BR/reference/data-types/int-uint) ou [`Float*`](/docs/pt-BR/reference/data-types/float) ou [`Date`](/docs/pt-BR/reference/data-types/date) ou [`DateTime`](/docs/pt-BR/reference/data-types/datetime)
* `weight` — Coluna com os pesos dos elementos da sequência. O peso é o número de ocorrências de um valor. [`UInt*`](/docs/pt-BR/reference/data-types/int-uint)

**Valor retornado**

Um array de quantis aproximados dos níveis especificados, na mesma ordem em que eles foram informados. Para entradas `Date` e `DateTime`, o formato de saída corresponde ao formato de entrada. [`Array(Float32)`](/docs/pt-BR/reference/data-types/array) ou [`Array(Date)`](/docs/pt-BR/reference/data-types/array) ou [`Array(DateTime)`](/docs/pt-BR/reference/data-types/array)

**Exemplos**

**Como calcular vários quantis ponderados com 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]                                    │
└───────────────────────────────────────────────────────┘
```
