Skip to content
ClickHouse Docs

quantileExactWeighted

Autogenerated from ClickHouse system tables

Introduced in: v1.1.0

Exactly computes the quantile of a numeric data sequence, taking into account the weight of each element.

To get the exact value, all the passed values are combined into an array, which is then partially sorted. Each value is counted with its weight, as if it is present weight times. A hash table is used in the algorithm. Because of this, if the passed values are frequently repeated, the function consumes less RAM than quantileExact. You can use this function instead of quantileExact and specify the weight 1.

When using multiple quantile* functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). In this case, use the quantiles function.

Syntax

quantileExactWeighted(level)(expr, weight)

Arguments

Returned value

Quantile of the specified level. For numeric data types the output format matches the input format. (U)Int* or Int128 or UInt128 or Int256 or UInt256 or Float* or Decimal* or Date or DateTime or DateTime64

Examples

Computing exact weighted quantile

CREATE TABLE t (
    n Int32,
    val UInt32
) ENGINE = Memory;

-- Insert the sample data
INSERT INTO t VALUES
(0, 3),
(1, 2),
(2, 1),
(5, 4);

SELECT quantileExactWeighted(n, val) FROM t;
┌─quantileExactWeighted(n, val)─┐
│                             1 │
└───────────────────────────────┘