19 lines
571 B
PL/PgSQL
19 lines
571 B
PL/PgSQL
--
|
|
-- Determine the Quantile classifications from a numeric array
|
|
--
|
|
-- @param in_array A numeric array of numbers to determine the best
|
|
-- bins based on the Quantile method.
|
|
--
|
|
-- @param breaks The number of bins you want to find.
|
|
--
|
|
--
|
|
CREATE OR REPLACE FUNCTION @extschema@.CDB_QuantileBins(in_array numeric[], breaks int)
|
|
RETURNS numeric[]
|
|
AS $$
|
|
SELECT
|
|
percentile_disc(Array(SELECT generate_series(1, breaks) / breaks::numeric))
|
|
WITHIN GROUP (ORDER BY x ASC) AS p
|
|
FROM
|
|
unnest(in_array) AS x;
|
|
$$ language SQL IMMUTABLE STRICT PARALLEL SAFE;
|