> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Com a precisão especificada, calcula o quantil de uma sequência de dados numéricos de acordo com o peso de cada elemento da sequência.

# quantileTimingWeighted

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

Introduzido em: v1.1.0

Com a precisão especificada, calcula o [quantil](https://en.wikipedia.org/wiki/Quantile) de uma sequência de dados numéricos de acordo com o peso de cada elemento da sequência.

O resultado é determinístico (não depende da ordem de processamento da consulta). A função é otimizada para trabalhar com sequências que descrevem distribuições, como tempos de carregamento de páginas da web ou tempos de resposta do backend.

Ao usar várias funções `quantile*` com níveis diferentes em uma consulta, os estados internos não são combinados (ou seja, a consulta é executada com menos eficiência do que poderia). Nesse caso, use a função [`quantiles`](/pt-BR/reference/functions/aggregate-functions/quantiles#quantiles).

**Precisão**

O cálculo é preciso se:

* O número total de valores não exceder 5670.
* O número total de valores exceder 5670, mas o tempo de carregamento da página for inferior a 1024 ms.

Caso contrário, o resultado do cálculo é arredondado para o múltiplo de 16 ms mais próximo.

<Note>
  Para calcular quantis de tempo de carregamento de páginas, esta função é mais eficiente e precisa do que [`quantile`](/pt-BR/reference/functions/aggregate-functions/quantile).
</Note>

<Note>
  Se nenhum valor for passado para a função (ao usar `quantileTimingIf`), [NaN](/pt-BR/reference/data-types/float#nan-and-inf) será retornado. O objetivo disso é diferenciar esses casos daqueles que resultam em zero. Consulte a [cláusula ORDER BY](/pt-BR/reference/statements/select/order-by) para ver observações sobre a ordenação de valores `NaN`.
</Note>

**Sintaxe**

```sql theme={null}
quantileTimingWeighted(level)(expr, weight)
```

**Aliases**: `medianTimingWeighted`

**Parâmetros**

* `level` — Opcional. Nível do quantil. Número constante de ponto flutuante entre 0 e 1. Recomendamos usar um valor de `level` no intervalo `[0.01, 0.99]`. Valor padrão: 0.5. Em `level=0.5`, a função calcula a mediana. [`Float*`](/pt-BR/reference/data-types/float)

**Argumentos**

* `expr` — Expressão sobre os valores de uma coluna que retorna um número do tipo Float\*. Se valores negativos forem passados para a função, o comportamento será indefinido. Se o valor for maior que 30.000 (um tempo de carregamento de página superior a 30 segundos), ele será tratado como 30.000. [`Float*`](/pt-BR/reference/data-types/float)
* `weight` — Coluna com os pesos dos elementos da sequência. O peso é o número de ocorrências do valor. [`UInt*`](/pt-BR/reference/data-types/int-uint)

**Valor retornado**

Quantil do nível especificado. [`Float32`](/pt-BR/reference/data-types/float)

**Exemplos**

**Calculando o quantil ponderado de tempo**

```sql title=Query theme={null}
CREATE TABLE t (response_time UInt32, weight UInt32) ENGINE = Memory;
INSERT INTO t VALUES (68, 1), (104, 2), (112, 3), (126, 2), (138, 1), (162, 1);

SELECT quantileTimingWeighted(response_time, weight) FROM t;
```

```response title=Response theme={null}
┌─quantileTimingWeighted(response_time, weight)─┐
│                                           112 │
└───────────────────────────────────────────────┘
```
