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

# Funciones de quantiles

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

Introducido en: v1.1.0

Calcula simultáneamente varios [cuantiles](https://en.wikipedia.org/wiki/Quantile) aproximados de una secuencia de datos numéricos en distintos niveles.

Esta función aplica [muestreo de reservorio](https://en.wikipedia.org/wiki/Reservoir_sampling) con un reservorio de hasta 8192 elementos y un generador de números aleatorios para el muestreo.
El resultado no es determinista.

Usar `quantiles` es más eficiente que llamar a varias funciones `quantile` individuales cuando necesitas varios valores de cuantiles, ya que todos los cuantiles se calculan en una sola pasada sobre los datos.

**Sintaxis**

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

**Parámetros**

* `level` — Niveles de cuantiles. Uno o más números de coma flotante constantes entre 0 y 1. Recomendamos usar valores de `level` en el rango `[0.01, 0.99]`. [`Float*`](/docs/es/reference/data-types/float)

**Argumentos**

* `expr` — Expresión sobre los valores de la columna que da como resultado tipos de datos numéricos, `Date`, `DateTime` o `DateTime64`. [`(U)Int*`](/docs/es/reference/data-types/int-uint) o [`Int128`](/docs/es/reference/data-types/int-uint) o [`UInt128`](/docs/es/reference/data-types/int-uint) o [`Int256`](/docs/es/reference/data-types/int-uint) o [`UInt256`](/docs/es/reference/data-types/int-uint) o [`Float*`](/docs/es/reference/data-types/float) o [`Decimal*`](/docs/es/reference/data-types/decimal) o [`Date`](/docs/es/reference/data-types/date) o [`DateTime`](/docs/es/reference/data-types/datetime) o [`DateTime64`](/docs/es/reference/data-types/datetime64)

**Valor devuelto**

Array de cuantiles aproximados de los niveles especificados, en el mismo orden en que se especificaron. Los argumentos numéricos producen `Float64`, mientras que los argumentos `Decimal`, `Date`, `DateTime` y `DateTime64` conservan su formato de entrada. [`Array(Float64)`](/docs/es/reference/data-types/array) o [`Array(Decimal*)`](/docs/es/reference/data-types/array) o [`Array(Date)`](/docs/es/reference/data-types/array) o [`Array(DateTime)`](/docs/es/reference/data-types/array) o [`Array(DateTime64)`](/docs/es/reference/data-types/array)

**Ejemplos**

**Cálculo eficiente de múltiples cuantiles**

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