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

> quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK

# Fonctions quantiles

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

Introduit dans : v1.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.

Cette fonction utilise un [échantillonnage en réservoir](https://en.wikipedia.org/wiki/Reservoir_sampling), avec une taille de réservoir pouvant atteindre 8192, ainsi qu’un générateur de nombres aléatoires pour l’échantillonnage.
Le résultat n’est pas déterministe.

L’utilisation de `quantiles` est plus efficace que l’appel de plusieurs fonctions `quantile` distinctes lorsque vous avez besoin de plusieurs valeurs de quantile, car tous les quantiles sont calculés en un seul parcours des données.

**Syntaxe**

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

**Paramètres**

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

**Arguments**

* `expr` — Expression appliquée aux valeurs de la colonne, renvoyant des types de données numériques, `Date`, `DateTime` ou `DateTime64`. [`(U)Int*`](/docs/fr/reference/data-types/int-uint) ou [`Int128`](/docs/fr/reference/data-types/int-uint) ou [`UInt128`](/docs/fr/reference/data-types/int-uint) ou [`Int256`](/docs/fr/reference/data-types/int-uint) ou [`UInt256`](/docs/fr/reference/data-types/int-uint) ou [`Float*`](/docs/fr/reference/data-types/float) ou [`Decimal*`](/docs/fr/reference/data-types/decimal) ou [`Date`](/docs/fr/reference/data-types/date) ou [`DateTime`](/docs/fr/reference/data-types/datetime) ou [`DateTime64`](/docs/fr/reference/data-types/datetime64)

**Valeur renvoyée**

Tableau de quantiles approximatifs pour les niveaux spécifiés, dans le même ordre que celui des niveaux indiqués. Les arguments numériques produisent `Float64`, tandis que les arguments `Decimal`, `Date`, `DateTime` et `DateTime64` conservent leur format d’entrée. [`Array(Float64)`](/docs/fr/reference/data-types/array) ou [`Array(Decimal*)`](/docs/fr/reference/data-types/array) ou [`Array(Date)`](/docs/fr/reference/data-types/array) ou [`Array(DateTime)`](/docs/fr/reference/data-types/array) ou [`Array(DateTime64)`](/docs/fr/reference/data-types/array)

**Exemples**

**Calcul efficace de plusieurs quantiles**

```sql title=Query theme={null}
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);

SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;
```

```response title=Response theme={null}
┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [3, 5.5, 8, 9.5]                     │
└──────────────────────────────────────┘
```
