From 0467c075f731191d48e4bf65b99e41c44341eccd Mon Sep 17 00:00:00 2001 From: Andy Eschbacher Date: Thu, 8 Mar 2018 10:00:52 -0500 Subject: [PATCH] opts for array version of percentile_disc --- scripts-available/CDB_QuantileBins.sql | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts-available/CDB_QuantileBins.sql b/scripts-available/CDB_QuantileBins.sql index c4a7564..57c4e36 100644 --- a/scripts-available/CDB_QuantileBins.sql +++ b/scripts-available/CDB_QuantileBins.sql @@ -10,10 +10,9 @@ CREATE OR REPLACE FUNCTION CDB_QuantileBins(in_array numeric[], breaks int) RETURNS numeric[] AS $$ - SELECT array_agg(p) FROM ( - SELECT percentile_disc(idx::numeric / breaks::numeric) - WITHIN GROUP (ORDER BY x ASC) AS p - FROM generate_series(1, breaks) AS idx, unnest(in_array) AS x - GROUP BY idx - ) AS quantiles; + SELECT + percentile_disc(Array(generate_series(1, breaks) / breaks::numeric)) + WITHIN GROUP (ORDER BY x ASC) AS p + FROM + unnest(in_array) AS x; $$ language sql;