Search notes:

SQL: PERCENTILE_CONT

percentile_cont() is not recognized by SQLite 3.27.2 or MySQL 8.

Create a test table

create table tq84_perc_cont (
   grp    varchar(10),
   val    decimal(5,3)
);
Github repository about-SQL, path: /select/analytic/percentile/cont/create-table.sql

Insert some values

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);
Github repository about-SQL, path: /select/analytic/percentile/cont/insert.sql

Selecting the median

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
;
Github repository about-SQL, path: /select/analytic/percentile/cont/select.sql

Using the aggregate

select
   grp,
   percentile_cont(0.5) within group (order by val)  median
from
   tq84_perc_cont   
group by
   grp;
Github repository about-SQL, path: /select/analytic/percentile/cont/select-group-by.sql
The aggregate (group by) version of percentil_cont works with Oracle 19c.
It does not work on SQL Server 2017, the error message being The function 'percentile_cont' must have an OVER clause.

See also

PERCENTILE_DISC does not interpolate the returned value, rather it returns one that already exists.

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/developm...', 1745906934, '3.140.198.85', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/development/databases/SQL/select/analytic/percentile/cont/index(94): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78