quantiles
Computes multiple approximate [quantiles](https://en.
Computes multiple approximate quantiles of a numeric data sequence at different levels simultaneously.
This function applies reservoir sampling with a reservoir size up to 8192 and a random number generator for sampling. The result is non-deterministic.
Using quantiles is more efficient than calling multiple individual quantile functions when you need multiple quantile values, as all quantiles are calculated in a single pass through the data.
Syntax
quantiles(level1, level2, ...)(expr)Parameters
level— Levels of quantiles. One or more constant floating-point numbers from 0 to 1. We recommend usinglevelvalues in the range of[0.01, 0.99].Float*
Arguments
expr— Expression over the column values resulting in numeric data types, Date or DateTime.(U)Int*orFloat*orDecimal*orDateorDateTime
Returned value
Array of approximate quantiles of the specified levels in the same order as the levels were specified. Array(Float64) or Array(Date) or Array(DateTime)
Examples
Computing multiple quantiles efficiently
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;┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [3, 5.5, 8, 9.5] │
└──────────────────────────────────────┘Introduced in version 1.1.