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

> Calcule, avec une précision déterminée, le quantile d'une séquence de données numériques en fonction du poids de chaque élément de la séquence.

# quantileTimingWeighted

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

Introduit dans : v1.1.0

Calcule, avec une précision déterminée, le [quantile](https://en.wikipedia.org/wiki/Quantile) d’une séquence de données numériques en fonction du poids de chaque élément de la séquence.

Le résultat est déterministe (il ne dépend pas de l’ordre de traitement de la requête). La fonction est optimisée pour les séquences qui décrivent des distributions, comme les temps de chargement des pages web ou les temps de réponse du backend.

Lors de l’utilisation de plusieurs fonctions `quantile*` avec différents niveaux dans une requête, les états internes ne sont pas combinés (autrement dit, la requête est moins efficace qu’elle pourrait l’être). Dans ce cas, utilisez la fonction [`quantiles`](/fr/reference/functions/aggregate-functions/quantiles#quantiles).

**Précision**

Le calcul est précis si :

* Le nombre total de valeurs ne dépasse pas 5670.
* Le nombre total de valeurs dépasse 5670, mais le temps de chargement de la page est inférieur à 1024 ms.

Sinon, le résultat du calcul est arrondi au multiple de 16 ms le plus proche.

<Note>
  Pour calculer les quantiles du temps de chargement des pages, cette fonction est plus efficace et plus précise que [`quantile`](/fr/reference/functions/aggregate-functions/quantile).
</Note>

<Note>
  Si aucune valeur n’est transmise à la fonction (lors de l’utilisation de `quantileTimingIf`), [NaN](/fr/reference/data-types/float#nan-and-inf) est renvoyé. Cela permet de distinguer ces cas de ceux qui aboutissent à zéro. Voir [clause ORDER BY](/fr/reference/statements/select/order-by) pour des remarques sur le tri des valeurs `NaN`.
</Note>

**Syntaxe**

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

**Alias** : `medianTimingWeighted`

**Paramètres**

* `level` — Facultatif. Niveau du quantile. Nombre à virgule flottante constant compris entre 0 et 1. Nous recommandons d’utiliser une valeur `level` dans la plage `[0.01, 0.99]`. Valeur par défaut : 0.5. Avec `level=0.5`, la fonction calcule la médiane. [`Float*`](/fr/reference/data-types/float)

**Arguments**

* `expr` — Expression appliquée aux valeurs d’une colonne, renvoyant un nombre de type Float\*. Si des valeurs négatives sont transmises à la fonction, le comportement est indéfini. Si la valeur est supérieure à 30 000 (un temps de chargement de page de plus de 30 secondes), elle est considérée comme égale à 30 000. [`Float*`](/fr/reference/data-types/float)
* `weight` — Colonne contenant les poids des éléments de la séquence. Le poids correspond au nombre d’occurrences de la valeur. [`UInt*`](/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Quantile du niveau spécifié. [`Float32`](/fr/reference/data-types/float)

**Exemples**

**Calcul d’un quantile temporel pondéré**

```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 │
└───────────────────────────────────────────────┘
```
