Обсуждение: percentile_cont from array?

Поиск
Список
Период
Сортировка

percentile_cont from array?

От
Wells Oliver
Дата:
I find myself needing to get percentile_cont values from array types and thus did this, wondering if anyone has any "you idiot that's available out of the box here" kind of feedback?

create or replace function public.percentile_array(numeric, numeric[])
    returns real
    language 'sql'
    immutable
as $$
    with u as (
        select unnest($2) as i
    )
    select percentile_cont($1) within group (order by i asc) from u;
$$;

alter function public.percentile_array owner to postgres;

select public.percentile_array(0.9, array[1,2,3,4,5]); -- 4.6


--

Re: percentile_cont from array?

От
Rui DeSousa
Дата:


On Sep 11, 2023, at 4:01 PM, Wells Oliver <wells.oliver@gmail.com> wrote:

I find myself needing to get percentile_cont values from array types and thus did this, wondering if anyone has any "you idiot that's available out of the box here" kind of feedback?

I think it is a personal preference; does the function make the code more readable?  The CTE is not needed, nor is the function.

create or replace function percentile_array(numeric, numeric[])
returns real
language 'sql'
immutable
as $$
select percentile_cont($1) within group (order by i asc) from unnest($2) i;
$$;


select percentile_cont(.9) within group (order by i asc)
from unnest(array[1,2,3,4,5]) i
;