QUANTILE_CONT() GROUP BY ...
All functions > GROUP BY > QUANTILE_CONT() GROUP BY ...
Returns the continuous quantile of the group at the given probability in (0, 1); result type is DOUBLE for numeric inputs and matches the expression type for DATE or TIMESTAMP.
Syntax
QUANTILE_CONT(expr, quantile) [ FILTER (WHERE condition) ] [ GROUP BY feature [, feature ...] ]
Notes
- NULL values are ignored where the underlying aggregate skips NULLs
- Can be used with FILTER (WHERE condition) and GROUP BY like other aggregates
- quantile uses DOUBLE (for example 0.5e0 for the median along the continuous definition)
Examples
FeatureQL
SELECT
-- Continuous 0.5 quantile over one group
f1 := ZIP(ARRAY(1, 1, 1) AS g, ARRAY(1e0, 2e0, 3e0) AS x).TRANSFORM(
SELECT QUANTILE_CONT(x, 0.5e0) GROUP BY g
).UNWRAP_ONE(),
-- Continuous 0.5 quantile of DATE values
f2 := ZIP(
ARRAY(DATE '2024-01-01', DATE '2024-01-02', DATE '2024-01-03') AS d
).TRANSFORM(SELECT QUANTILE_CONT(d, 0.5e0)).UNWRAP_ONE(),
-- Continuous 0.5 quantile of TIMESTAMP values
f3 := ZIP(
ARRAY(
TIMESTAMP '2024-01-01 10:00:00',
TIMESTAMP '2024-01-02 10:00:00',
TIMESTAMP '2024-01-03 10:00:00'
) AS t
).TRANSFORM(SELECT QUANTILE_CONT(t, 0.5e0)).UNWRAP_ONE()
;Result
| f1 VARCHAR | f2 TIMESTAMP | f3 TIMESTAMP |
|---|---|---|
| 2.0 | 2024-01-02T00:00:00 | 2024-01-02T10:00:00 |