create table tq84_perc_cont ( grp varchar(10), val decimal(5,3) );
insert into tq84_perc_cont values ('A', 5.1); insert into tq84_perc_cont values ('A', 17.8); insert into tq84_perc_cont values ('A', 5.3); insert into tq84_perc_cont values ('A', 4.8); insert into tq84_perc_cont values ('B', 15.2); insert into tq84_perc_cont values ('B', 8.9); insert into tq84_perc_cont values ('B', 6.3); insert into tq84_perc_cont values ('B', 22.1);
select grp, val, percentile_cont(0.5) within group (order by val) over ( ) median, percentile_cont(0.5) within group (order by val) over (partition by grp) median_grp from tq84_perc_cont ;
select grp, percentile_cont(0.5) within group (order by val) median from tq84_perc_cont group by grp;
group by
) version of percentil_cont works with Oracle 19c. PERCENTILE_DISC
does not interpolate the returned value, rather it returns one that already exists.